我需要一些正则表达式帮助。
我有一个像这样的清单:
/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]/
找到上面的内容,还要找到/匹配/hours_3211?
?
我如何调整我的正则表达式以匹配所有
hours_3[23]
但不匹配hours_3211
?
使用否定的前瞻(?!)
:
/hours_3(?!211)[23]/
如何调整
/hours_3[45]/
以找到上述内容,但同时查找/匹配/hours_3211
?
使用交替|
:
/hours_3(?:[45]|211)/
编辑:
更恰当的是,上面仅指定了是否匹配。如果要返回实际的完全匹配,.*
则要添加到RegExp的末尾,如下所示:
/hours_3(?!211)[23].*/
/hours_3(?:[45]|211).*/
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句