RegEx:在没有粉丝的情况下获得一个特殊粉丝的角色?

时间:2013-10-29 17:12:04

标签: regex

早上好:)

想象一下这个字符串:

-2x^3+3x^2-4x+1.5

我想提取'x',后面没有'^'。 我尝试了(x)[^\^],但这也抓住了最后一个'x'后面的'+'。如何在不使用以下“+”的情况下提取“x”?这是可能的,还是我必须在程序代码的其余部分手动完成?

问候!

2 个答案:

答案 0 :(得分:1)

如果你的正则表达式引擎支持它,你可以使用先行断言:

(x)(?=[^^])

这将匹配除x以外的任何字符后面的任何^,但它不会捕获以下字符。

如果你还希望在字符串的末尾匹配x,你可以使用它:

(x)(?=[^^]|$)

这将匹配任何x后跟除^以外的任何字符或字符串的结尾,但它不会捕获以下字符(如果存在)。虽然Jerry's solution在这种情况下更优雅。

答案 1 :(得分:1)

您可以按如下方式使用否定前瞻:

x(?!\^)

反斜杠是为了逃避插入符号,因此它与行的开头不匹配,而是字面插入符号。

此表达式将匹配任何未跟随字符x的{​​{1}}。