Regex 更换';(';带';(';如果它不在引号内)

Regex 更换';(';带';(';如果它不在引号内),regex,replace,regex-negation,Regex,Replace,Regex Negation,假设我有一些这样的文本: (what) ( what) 及 我试图用([space]替换(),如果它不在引号内。 因此,替换后的第一个字符串应如下所示: (what) ( what) 第二个字符串不应该改变 我尝试了[^”]\([^”],但没有成功。你可以使用环视仪 您可以使用此正则表达式: ^(?!").*(\() 顺便说一句,您也可以使用丢弃技术: .*?".*?".*?|(\() 您可以尝试向前看和向后看 (?<!")\(([^)]+)(?!\)") (? 替换为($

假设我有一些这样的文本:

(what)
( what)

我试图用
([space]
替换
),如果它不在引号内。
因此,替换后的第一个字符串应如下所示:

(what)
( what)
第二个字符串不应该改变


我尝试了
[^”]\([^”]
,但没有成功。

你可以使用环视仪

您可以使用此正则表达式:

^(?!").*(\()

顺便说一句,您也可以使用丢弃技术:

.*?".*?".*?|(\()

您可以尝试向前看和向后看

(?<!")\(([^)]+)(?!\)")
(?
替换为
($1


用记事本试试这个方法++ 第一次 替换“(以((按空间排列的paretse流)

第二个(用空格替换)


而且会很好地工作

你能用嵌套的括号吗?会发生这种情况吗
(一些(文本))任何时候,你试图根据某个文本是否落在一对分隔符中,比如引号,你就进入了复杂的领域,也许应该考虑一个与正则表达式不同的工具。特别是如果这些分隔符可能被嵌套,或者包含自己引用的实例。@Vache是的。这种情况也可能发生。@MarkReed你能推荐一些其他工具吗?@SPython:你能有转义引号吗?比如:
(一些“abcd(一些\“(文本)))”)
结束双引号怎么样?OPs要求中没有明确规定,但这对“开始引用(parens)”之类的东西不起作用“,假设他们不想要那里的空间。@KevinDiTraglia说得好。谢谢你给我看。让我来解决它。”