RegExp 帮助(工作但需要排除)
RegExp help (working but need an exclusion)
我需要一些正则表达式帮助。
我有一个这样的列表:
/hours_3203
/hours_3204
/hours_3205
/hours_3206
/hours_3207
/hours_3208
/hours_3309
/hours_3310
/hours_3211
我正在使用此正则表达式查找以 32 或 33 开头的所有条目:
/hours_3[23]/
这是有效的。
然而,当我被告知我需要排除 hours_3211
在此列表中的匹配时,我被扔了一个曲线球。
如何调整正则表达式以匹配所有 hours_3[23]
但不匹配 /hours_3211
?
或者,当我有这样的列表时:
/hours_3412
/hours_3413
/hours_3414
/hours_3415
/hours_3516
/hours_3517
/hours_3518
/hours_3519
我一直在使用正则表达式:
/hours_3[45]/
找到所有 hours_34x
和 /hours_35x
我该如何调整:
/hours_3[45]/
找到上面的但是也在 find/match /hours_3211?
?
How can I adjust my regex to match on all hours_3[23]
but NOT match on hours_3211
?
您可以使用插入负先行子模式:
/hours_3(?!211)[23]/
(?!211)
是在 hours_3
之后不允许 211
的否定前瞻,因此不允许 hours_3211
我假设你将 3211 添加到第二个正则表达式中,就像这样....
hours_(3[45]|3211)
第一个是负前瞻
hours_3[23](?!11)
How can I adjust my regex to match on all hours_3[23]
but NOT match on hours_3211
?
使用否定前瞻(?!)
:
/hours_3(?!211)[23]/
How I can adjust /hours_3[45]/
to find the above but ALSO find/match on /hours_3211
?
交替使用|
:
/hours_3(?:[45]|211)/
编辑:
更恰当的说,上面只说明匹配与否。如果您想要返回实际的完整匹配,您需要将 .*
添加到 RegExp 的末尾,如下所示:
/hours_3(?!211)[23].*/
/hours_3(?:[45]|211).*/
我需要一些正则表达式帮助。
我有一个这样的列表:
/hours_3203
/hours_3204
/hours_3205
/hours_3206
/hours_3207
/hours_3208
/hours_3309
/hours_3310
/hours_3211
我正在使用此正则表达式查找以 32 或 33 开头的所有条目:
/hours_3[23]/
这是有效的。
然而,当我被告知我需要排除 hours_3211
在此列表中的匹配时,我被扔了一个曲线球。
如何调整正则表达式以匹配所有 hours_3[23]
但不匹配 /hours_3211
?
或者,当我有这样的列表时:
/hours_3412
/hours_3413
/hours_3414
/hours_3415
/hours_3516
/hours_3517
/hours_3518
/hours_3519
我一直在使用正则表达式:
/hours_3[45]/
找到所有 hours_34x
和 /hours_35x
我该如何调整:
/hours_3[45]/
找到上面的但是也在 find/match /hours_3211?
?
How can I adjust my regex to match on all
hours_3[23]
but NOT match onhours_3211
?
您可以使用插入负先行子模式:
/hours_3(?!211)[23]/
(?!211)
是在 hours_3
之后不允许 211
的否定前瞻,因此不允许 hours_3211
我假设你将 3211 添加到第二个正则表达式中,就像这样....
hours_(3[45]|3211)
第一个是负前瞻
hours_3[23](?!11)
How can I adjust my regex to match on all
hours_3[23]
but NOT match onhours_3211
?
使用否定前瞻(?!)
:
/hours_3(?!211)[23]/
How I can adjust
/hours_3[45]/
to find the above but ALSO find/match on/hours_3211
?
交替使用|
:
/hours_3(?:[45]|211)/
编辑:
更恰当的说,上面只说明匹配与否。如果您想要返回实际的完整匹配,您需要将 .*
添加到 RegExp 的末尾,如下所示:
/hours_3(?!211)[23].*/
/hours_3(?:[45]|211).*/