Java 如何匹配正则表达式?
我真正想做的是匹配子字符串包含的所有单词。它可以工作,但我尝试了一个单词。我不想匹配该字符串,但我想匹配添加到该字符串的任何额外字符。如下图所示Java 如何匹配正则表达式?,java,regex,Java,Regex,我真正想做的是匹配子字符串包含的所有单词。它可以工作,但我尝试了一个单词。我不想匹配该字符串,但我想匹配添加到该字符串的任何额外字符。如下图所示 ^(?!wallet)(car|cell phone|marbles|wallet|.*?wall.*)$ 在上面的示例中,我不想与wallet匹配,但可以与wallett匹配。可能吗?您可以这样使用它: ^(?!(wallet|nag)$)(car|cell phone|marbles|wallet|.*?wall.*)$ 你的正则表达式的问题是
^(?!wallet)(car|cell phone|marbles|wallet|.*?wall.*)$
在上面的示例中,我不想与wallet匹配,但可以与wallett匹配。可能吗?您可以这样使用它:
^(?!(wallet|nag)$)(car|cell phone|marbles|wallet|.*?wall.*)$
你的正则表达式的问题是,消极的前瞻性将匹配从“钱包”开始的所有内容。“wallett”也以“wallet”开头,因此它将被匹配,因此(因为它是一个负面展望)被排除在外 您可以通过添加
$
锚来修复此问题,以确保它只匹配钱包,后面没有任何内容
因此,您的正则表达式将变成:
^(?!wallet$)(car|cell phone|marbles|.*?wall.*)$
(请注意,正则表达式中的后一个“钱包”可以删除,因为它等于负前瞻,因此永远不会匹配。)
你可以看到一个活生生的例子。regex不是一种语言……Ivar先生。它是一个概念。不需要添加这个概念。它不是必需的标记不限于语言。标记表示与问题相关的主题,而不是明确使用的语言。另外,你能给我们看一张照片吗?你怎么用这个正则表达式?给定输入的期望输出是什么?问题是我想和瓦利特比赛。。。。字符串,因为我们正在检查包含“*wall.*”但我不想与“wallet”匹配,因为我们正在减去单词thankyou Ivar.itsworking@IvarNagaraju Thalluri在文章中提到过,我们无法在包含条件下看到*符号。这与问题中所问的“wallett”不匹配。还有,
|nag
的作用是什么?另外,建议您也添加一个解释,说明您的代码/表达式修复了该问题的原因。这里的问题不仅针对提问者,也针对任何未来的访客。^(?!wallet$^ nag$)(汽车、手机、大理石、wallet.*wall.*.*ag.*)试试这个Ivar。效果很好。Shiva Goud只问一个否定值,但我给了多个。如果他愿意,他会接受。不需要那些大写字母@NagarajuThalluri。你可以直接使用^(?)?!(wallet | nag)$)(car |手机| marbles | wallet | | wall.*.$@NagarajuThalluri正如我所说,你应该添加一个解释,解释为什么你的代码/表达式修复了这个问题。OP解决了他们的问题,这很好,但我们也希望为未来的访问者提供高质量和良好的解释。请相应地回答你的问题。