为了账号安全,请及时绑定邮箱和手机立即绑定

正则表达式用于匹配没有特定模式的数字

正则表达式用于匹配没有特定模式的数字

侃侃尔雅 2022-12-28 15:48:52
我正在尝试构建一个正则表达式来匹配以下行样式:123 warehouse124 token warehouse.153token token abc123; etc. - warehouse 223abdc token abc green warehouse 但不是这些行:53red warehouse.323 green token token etc warehouse. 我构建的正则表达式使用负前瞻,但在https://regex101.com/上测试它匹配所有行:\d+(?!( ?red| ?green)).*(\bwarehouse\b)是什么错误,应该如何修改?如果重要的话,正则表达式应该在 Java 下编译(在转义必要的字符之后)。
查看完整描述

2 回答

?
元芳怎么了

TA贡献1798条经验 获得超7个赞

如果您使用所有格量词来防止回溯,则您的模式有效:

\d++代替\d+

这是 regex101 上的演示,它是 pcre,但 Java 正则表达式也应该支持这些演示。


查看完整回答
反对 回复 2022-12-28
?
慕码人2483693

TA贡献1860条经验 获得超9个赞

123red warehouse.

您的正则表达式匹配 1 个或多个数字12,然后不是红色或绿色,然后是3red任何字符。a spacewarehouse

在第一位数字之后添加一个负前瞻:

\d+(?!\d)(?! ?(?:red|green)).*(\bwarehouse\b)

演示


查看完整回答
反对 回复 2022-12-28
  • 2 回答
  • 0 关注
  • 67 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信