我一直在尝试为以下问题创建正则表达式:
A) 标准杆 乙) 1234
给定上面的字符串 A 和 B ,我想找到这些值按顺序出现的所有匹配项,而不考虑空格等,并遵循以下重要规则:
- 字符串 A 和 B 都不能作为另一个更大字符串的子字符串存在
- 给定的字符串 B 必须出现在 A 之后
- 给定的字符串 B 必须单独出现,而不是另一个数字的一部分
以下是一些潜在匹配示例:
- 标准杆1234
- 标准杆 1234
- 标准杆5678、1234
- 标准杆 9991234999 , 1234
- 标准杆!@#-= 1234
- 标准杆1234 -122
- 标准杆# 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*标准杆\W* 1234
但这与上述潜在比赛中的#3 不匹配。所以我尝试了许多适用于某些但不是全部的变化。
我想知道是否有一个表达式可以捕捉我想要完成的事情。任何帮助将不胜感激。
谢谢。