【发布时间】:2015-02-05 12:02:27
【问题描述】:
我正在尝试在下面给定的正则表达式中添加一个条件,以检查至少有一个特殊字符 %(百分号)以 W 开头,另外五个字符可能介于 A-Z 之间、0-9 和 %。我自己尝试使用 LookAhead (?=.*[%]),但不幸的是不适合我。下面是一个表达式,我想使用前瞻或其他语法检查字符串中至少有一个或多个 % 字符。提前致谢。
尝试在此表达式上添加前瞻:
Select 'P' from dual Where REGEXP_LIKE('W77%7%','(^W[0-9A-Z%]{5}$)')
试过了:
Select 'P' from dual Where REGEXP_LIKE('W77%7%','^(?=(^%){0,6}) [^W[0-9A-Z%]{5}$]')
试过了:
Select 'P' from dual Where REGEXP_LIKE('W77%7%','^(?=.*%){0,6}) [^W[0-9A-Z%]{5}$]')
【问题讨论】:
-
iirc、oracle regexen 不支持前瞻。
-
这真的很不幸。是否有其他方法可以检查上述表达式是否包含至少一个 % 特殊字符。谢谢。选择'P' from dual Where REGEXP_LIKE('W77%7%','(^W[0-9A-Z%]{5}$)')