使用PL / SQL。
我有以下字符串
('Jade Court','Sarah M.', 4, '08/17/2017')
我需要编写一个正则表达式,可以解析'
字符之间的每个项目。例如,我需要Jade Court
,Sarah M.
,08/17/2017
等。
到目前为止,我已经提出了以下正则表达式:
(?<=')[^']+(?=')
从下面的演示中可以看到,到目前为止,这可以通过同时查找每个必需项来实现。
https://regex101.com/r/CV8evw/1
但是,我需要能够分别解析它们。有没有一种方法可以在我的正则表达式中添加量词,以便我可以指定想要的匹配项?
我尝试了(?<=')[^']+(?='){1}
,我希望它能返回Jade Court
,但不幸的是这没有用。这可能吗?
答案 0 :(得分:2)
您可以使用REGEXP_SUBSTR
function并利用其 nth_appearance 参数。
您可能使用的正则表达式是
'([^']+)'
它与'
匹配,然后将除'
之外的任意1个以上的字符捕获到组1中,然后匹配'
。可以通过设置为1
的 sub_expression 参数访问组1的值。参见regex graph:
因此,要获得第一个匹配项,您需要使用
REGEXP_SUBSTR(col, '''([^'']+)''', 1, 1, NULL, 1)
要提取第二个,请使用
REGEXP_SUBSTR(col, '''([^'']+)''', 1, 2, NULL, 1)
以此类推。
答案 1 :(得分:1)
您可以尝试此正则表达式:
/\w{2,}\/?\s?\w*(\/\d{4})?/g
使用javascript
const x = "('Jade Court','Sarah M.', 4, '08/17/2017')"
const regex = /\w{2,}\/?\s?\w*(\/\d{4})?/g
console.log(x.match(regex))