首页 > 解决方案 > 如果字符串包含某个单词,我如何使用正则表达式跳过它

问题描述

如果在 Vehicles word str 1 = "3 Vehicles have been added", str 2 = "13 Vehicles" Regex I m using = 之后包含“have”,我想跳过该字符串([0-9]+)[\s]*Vehicles[\s]*[^have]

需要的输出是“13 辆”(仅),但“3 辆”也匹配..这是不对的

提前致谢

标签: javaregex

解决方案


您可以使用否定的前瞻来断言它 have不是直接在右边。

否定字符类[^have]匹配不是任何列出的字符的单个字符。

[0-9]+\h+Vehicles(?!\h+have\b)

正则表达式演示

在 Java 中

String regex = "[0-9]+\\h+Vehicles(?!\\h+have\\b)";

推荐阅读