如何在!
和"
之前捕获感叹号(
,而不是在两个双引号"
内?
在先决条件确定之前,但后一部分,该感叹号不应该在双打引号内,应加上:
\s*([\!])\s*(")|\s*([\!])\s*(\()
给定输入:( ! "A" ! (!"B" "C" " ! ( "))
预期输出:( ! "A" ! ( ! "B" "C" " ! ( "))
答案 0 :(得分:1)
如果我理解你是正确的,那么你想在引号之外的感叹号周围准确地一个空格。
这个正则表达式应该做的工作:
\G[^"]*?\K(?:\s*!\s*(?=["(]))([^"!]*(?:"[^"]*")?)
你可以在这里找到关于正则表达式的解释:
对于替代品你可以看看这里: https://regex101.com/r/dzwTUp/1