如何与正则表达式匹配?

时间:2019-01-03 11:41:19

标签: java regex

我真正想要做的是匹配子字符串包含的所有单词。它正在工作,但是我尝试了一个单词。我不想匹配该字符串,但是我想要匹配的字符串中添加了任何多余的字符就像下面的

^(?!wallet)(car|cell phone|marbles|wallet|.*?wall.*)$

在上面的示例中,我不想与钱包匹配,但能够与wallett匹配。有可能吗?

2 个答案:

答案 0 :(得分:1)

正则表达式的问题在于,负前瞻将匹配以“钱包”开头的所有内容。 “ wallett”也以“ wallet”开头,因此将被匹配,因此(因为它是前瞻)被排除。

您可以通过添加$定位符来确保其仅与钱包匹配,且后面没有匹配符。

因此您的正则表达式将变为:

^(?!wallet$)(car|cell phone|marbles|.*?wall.*)$

(请注意,您的正则表达式中的后一个“钱包”可以删除,因为它等于负前瞻,因此永远不会匹配。)

您可以看到一个实时示例here

答案 1 :(得分:0)

您可以像这样使用它:

^(?!(wallet|nag)$)(car|cell phone|marbles|wallet|.*?wall.*)$