我正在尝试使用带有某些条件的正则表达式,(即),
(?(表达式1)表达式2)
这样做,我只需要返回expression2而不是expression1。这有可能吗?
答案 0 :(得分:1)
如果我理解正确,您只想在expression2
之前返回expression1
然后你想这样做:
(?<=expression1)expression2
答案 1 :(得分:1)
Regex支持以下形式的条件:
(?(?=regex)then|else)
如果前瞻成功,则“then”部分必须匹配整个正则表达式才能匹配。如果前瞻失败,则“else”部分必须匹配整个正则表达式才能匹配。不只是积极的前瞻,而是可以使用所有四种外观。请注意,前瞻是零宽度,因此“then”和“else”部分需要匹配并消耗前瞻匹配的文本部分。
答案 2 :(得分:0)
你应该使用零宽度负前瞻:
(?!expression1)(expression2)
如果表达式1匹配,这将否定整个匹配。