我一直在尝试为以下问题创建正则表达式:
A) PAR
B) 1234
给定上面的字符串A和B,我想找到所有匹配,其中这些值按顺序出现,无论空格如何,等等都有以下重要规则:
- 字符串A和B不能作为另一个较大字符串的子字符串存在
- 给定的字符串B必须在A
之后出现
- 给定的字符串B必须单独出现,而不是另一个数字的一部分
醇>
以下是一些可能的匹配示例:
- PAR 1234
- PAR 1234
- PAR 5678, 1234
- PAR 9991234999, 1234
- PAR !@# - = 1234
- PAR 1234 -122
- PAR # 1234 -233
- 任何文字 PAR # 1234 -233
醇>
但是,以下内容不匹配:
- PAR T 1234 - PAR是PART的子串
- A PAR T 1234 - PAR是APART的子字符串
- PAR 1234 999 - 1234是1234999的子串
- PAR 999 1234 - 1234是9991234的子串
- PAR 999 1234 999 - 1234是9991234999的子串
- 1234 PAR - 1234发生在PAR之前
醇>
不幸的是,我试图在oracle中使用REGEXP_LIKE并且没有\ b
我试过
\ W *的 PAR \ W *的 1234
但在上面的潜在比赛中,这与#3不匹配。所以我尝试了许多变化,这些变化对一些但不是全部都有效。
我想知道是否有一个表达可以捕捉我想要完成的事情。任何帮助将不胜感激。
感谢。