在“和(但不在里面”)之前捕获感叹号(RegEx)

时间:2017-01-22 02:52:37

标签: regex language-agnostic regex-negation

如何在!"之前捕获感叹号(,而不是在两个双引号"内?

在先决条件确定之前,但后一部分,该感叹号不应该在双打引号内,应加上:

\s*([\!])\s*(")|\s*([\!])\s*(\() 

给定输入:( ! "A" ! (!"B" "C" " ! ( "))

预期输出:( ! "A" ! ( ! "B" "C" " ! ( "))

http://www.regexr.com/3f495

1 个答案:

答案 0 :(得分:1)

如果我理解你是正确的,那么你想在引号之外的感叹号周围准确地一个空格

这个正则表达式应该做的工作:

\G[^"]*?\K(?:\s*!\s*(?=["(]))([^"!]*(?:"[^"]*")?)

你可以在这里找到关于正则表达式的解释:

Regular expression visualization

Debuggex Demo

对于替代品你可以看看这里: https://regex101.com/r/dzwTUp/1