如何将此pcre正则表达式转换为与Oracle的REGEXP\u SUBSTR一起使用?
我有一个pcre正则表达式,我想将其移植到Oracle支持的正则表达式: ^.*pdf\uw+-\w+*$ 设计用于匹配且仅限于粗体字: 圆盒缩进pdf_放置 pdf\U等级 缩进pdf_位置1圆框 Oracle正则表达式语法中的等效表达式是什么 编辑: 我尝试了sln在评论中的建议: 从以下位置选择REGEXP\u SUBSTRclass,'^.*pdf\uw+?:-\w+*.*$' 我得到的只是返回的整个值,而不仅仅是匹配值:如何将此pcre正则表达式转换为与Oracle的REGEXP\u SUBSTR一起使用?,regex,oracle,pcre,Regex,Oracle,Pcre,我有一个pcre正则表达式,我想将其移植到Oracle支持的正则表达式: ^.*pdf\uw+-\w+*$ 设计用于匹配且仅限于粗体字: 圆盒缩进pdf_放置 pdf\U等级 缩进pdf_位置1圆框 Oracle正则表达式语法中的等效表达式是什么 编辑: 我尝试了sln在评论中的建议: 从以下位置选择REGEXP\u SUBSTRclass,'^.*pdf\uw+?:-\w+*.*$' 我得到的只是返回的整个值,而不仅仅是匹配值: roundBox indent pdf_placement 而
roundBox indent pdf_placement
而不是
placement
我最后用的表达是: pdf\uw+?-\w** 总之,SELECT子句如下所示:
选择REGEXP\u SUBSTRclass,'pdf\uw+-\w**',1,1,'i',1 FROM…我最后使用的表达式是: pdf\uw+?-\w** 总之,SELECT子句如下所示:
选择REGEXP\u SUBSTRclass,'pdf\uw+-\w**',1,1,'i',1 FROM…您可以采取替换不需要的内容的方法:
SQL> with t (txt) as (
2 select 'roundBox indent pdf_placement' from dual union all
3 select 'PDF_grade' from dual union all
4 select 'indent pdf_placement1 roundBox' from dual
5 ) -- end of sample data
6 select regexp_replace(txt, '^.*pdf_(\w+).*$', '\1', 1, 0, 'i')
7 from t;
REGEXP_REPLACE(TXT,'^.*PDF_(\W
--------------------------------------------------------------------------------
placement
grade
placement1
我使用参数“I”使其不区分大小写,并使用大写字母PDF。您可以根据需要随意使用它。您可以采取替换不需要的内容的方法:
SQL> with t (txt) as (
2 select 'roundBox indent pdf_placement' from dual union all
3 select 'PDF_grade' from dual union all
4 select 'indent pdf_placement1 roundBox' from dual
5 ) -- end of sample data
6 select regexp_replace(txt, '^.*pdf_(\w+).*$', '\1', 1, 0, 'i')
7 from t;
REGEXP_REPLACE(TXT,'^.*PDF_(\W
--------------------------------------------------------------------------------
placement
grade
placement1
我使用参数“I”使其不区分大小写,并使用大写字母PDF。您可以根据需要随意使用它。语法是基本正则表达式,应该是可传输的。但是,如果您想具体说明,这里有一个很好的子表达式\w+?:-\w+*@sln Oracle不支持非捕获组。@MT0-Oracle是否自己生产正则表达式引擎?语法是基本正则表达式,应该是可传输的。但是,如果您想说得具体一点,这里有一个很好的子表达式\w+?:-\w+*@sln Oracle不支持非捕获组。@MT0-Oracle是否自己生产正则表达式引擎?以及稍快一点的版本pdf\w+-\w?*和稍快一点的版本pdf\w+-\w*