我有这个正则表达式:
[ ]\d+|(?<=[^-'(a-zA-Z0-9\n])\d+
匹配the 100
,我想排除the 100
匹配。
我尝试添加:(?!the 100)
但没有运气!
有可能吗?
由于
修改:
这就是我需要的:
the 100 => the 100
_123 => _
(1234 => (
.12345 => .
?!8 => ?!
hi 123 => hi
?? 1234 => ??
(123-123) => (123-123)
aaa123 => aaa123
A1234 => A1234
Z_L12345 => Z_L12345
..A8 => ..A8
aaa a123 => aaa a123
答案 0 :(得分:2)
您可以像这样添加否定条件(?!\b100\b)
:
(?:[\( ](?!\b100\b)\d+|(?<=[^-'(a-zA-Z0-9\n])(?!\b100\b)\d+)$
这是demo。
我在(
模式中添加了[ ]
,以匹配1234
中的(1234
。
答案 1 :(得分:0)
另一种可能的模式:
~[ ]?(?<![^\W_])\d+\z(?<!the 100)~
模式细节:
~ # pattern delimiter
[ ]? # optional space (to trim it at the end)
(?<![^\W_]) # a kind of word boundary that allows the underscore
\d+\z # digits at the end of the string
(?<!the 100) # forbids "the 100" (not preceded by "the 100")
~