早上好:)
想象一下这个字符串:
-2x^3+3x^2-4x+1.5
我想提取'x',后面没有'^'。
我尝试了(x)[^\^]
,但这也抓住了最后一个'x'后面的'+'。如何在不使用以下“+”的情况下提取“x”?这是可能的,还是我必须在程序代码的其余部分手动完成?
问候!
答案 0 :(得分:1)
如果你的正则表达式引擎支持它,你可以使用先行断言:
(x)(?=[^^])
这将匹配除x
以外的任何字符后面的任何^
,但它不会捕获以下字符。
如果你还希望在字符串的末尾匹配x
,你可以使用它:
(x)(?=[^^]|$)
这将匹配任何x
后跟除^
以外的任何字符或字符串的结尾,但它不会捕获以下字符(如果存在)。虽然Jerry's solution在这种情况下更优雅。
答案 1 :(得分:1)
您可以按如下方式使用否定前瞻:
x(?!\^)
反斜杠是为了逃避插入符号,因此它与行的开头不匹配,而是字面插入符号。
此表达式将匹配任何未跟随字符x
的{{1}}。