regex - Removing apostrophes from regrex pattern -


i'm little new regex , have written simple regex retrieve word "preview" from string below.

time: '333333333333333333316:06:55 -232323' permission: 'preview' teacher name: '4444444444444ffffffffffff' student: 'cccccccccccssssssssss' exam score: 'eeeeeeeeeeea'

this regex expression below

permission:\s?'([a-za-z]+)'\s?teacher name 

i want recreate regex expression not have apostrophes in it.

i plan use regex in regex_substr expression in oracle query , seems not consume regex apostrophe well.

how do that?

i know regex has many formats, if knows better pattern, please feel free suggest.

you can use current regex pattern (corrected per wiktor's comment!) escaping single quotes:

regexp_substr(<your string>, 'permission:\s?''([a-za-z]+)''\s?teacher name') 

or more cleanly using the alternative quoting mechanism:

regexp_substr(<your string>, q'[permission:\s?'([a-za-z]+)'\s?teacher name]') 

which lets leave single quotes originally, , put whole thing inside set of delimited single quotes, using delimiter doesn't appear in actual content - i've used square brackets here, q'[ ... ]'. lets whatever inside, ... part, include unescaped single quotes.

demos:

with t (str) (   select q'[time: '333333333333333333316:06:55 -232323' permission: 'preview' teacher name: '4444444444444ffffffffffff' student: 'cccccccccccssssssssss' exam score: 'eeeeeeeeeeea']' dual ) select regexp_substr(str, 'permission:\s?''([a-za-z]+)''\s?teacher name') t;  regexp_substr(str,'permission:\s?' ---------------------------------- permission: 'preview' teacher name 

or:

with t (str) (   select q'[time: '333333333333333333316:06:55 -232323' permission: 'preview' teacher name: '4444444444444ffffffffffff' student: 'cccccccccccssssssssss' exam score: 'eeeeeeeeeeea']' dual ) select regexp_substr(str, q'[permission:\s?'([a-za-z]+)'\s?teacher name]') t;  regexp_substr(str,q'[permission:\s ---------------------------------- permission: 'preview' teacher name 

to word 'preview' can use regexp_replace() back-reference:

with t (str) (   select q'[time: '333333333333333333316:06:55 -232323' permission: 'preview' teacher name: '4444444444444ffffffffffff' student: 'cccccccccccssssssssss' exam score: 'eeeeeeeeeeea']' dual ) select regexp_replace(str,   '(.*permission:\s?'')([a-za-z]+)(''\s?teacher name.*)', '\2', 1, 1) t;  regexp_ ------- preview 

or

with t (str) (   select q'[time: '333333333333333333316:06:55 -232323' permission: 'preview' teacher name: '4444444444444ffffffffffff' student: 'cccccccccccssssssssss' exam score: 'eeeeeeeeeeea']' dual ) select regexp_replace(str,   q'[(.*permission:\s?')([a-za-z]+)('\s?teacher name.*)]', '\2', 1, 1) t;  regexp_ ------- preview 

Comments

Popular posts from this blog

What is happening when Matlab is starting a "parallel pool"? -

angular - DownloadURL return null in below code -

php - Cannot override Laravel Spark authentication with own implementation -