使用正则表达式中的条件

时间:2011-07-13 22:24:01

标签: regex

我正在尝试使用带有某些条件的正则表达式,(即),

(?(表达式1)表达式2)

这样做,我只需要返回expression2而不是expression1。这有可能吗?

3 个答案:

答案 0 :(得分:1)

如果我理解正确,您只想在expression2之前返回expression1

然后你想这样做:

(?<=expression1)expression2

答案 1 :(得分:1)

Regex支持以下形式的条件:

(?(?=regex)then|else)

如果前瞻成功,则“then”部分必须匹配整个正则表达式才能匹配。如果前瞻失败,则“else”部分必须匹配整个正则表达式才能匹配。不只是积极的前瞻,而是可以使用所有四种外观。请注意,前瞻是零宽度,因此“then”和“else”部分需要匹配并消耗前瞻匹配的文本部分。

答案 2 :(得分:0)

你应该使用零宽度负前瞻:

(?!expression1)(expression2)

如果表达式1匹配,这将否定整个匹配。