You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

可否通过单次正则查找替换实现文件中所有括号的翻转?

解决方案

可以单次完成,具体实现方式取决于你使用的正则引擎支持能力:

  • 支持回调替换的正则引擎(绝大多数编程语言内置的正则模块都支持该能力)
    你只需要用正则匹配所有括号字符,再通过回调映射替换为对应翻转后的括号即可。
    示例:
    • JavaScript 实现:
    const raw = ")()()()()("
    const result = raw.replace(/([(){}[\]])/g, match => ({
        '(': ')',
        ')': '(',
        '{': '}',
        '}': '{',
        '[': ']',
        ']': '['
    }[match]))
    
    • Python 实现:
    import re
    bracket_map = {'(':')', ')':'(', '{':'}', '}':'{', '[':']', ']':'['}
    raw = ")()()()()("
    result = re.sub(r'([(){}[\]])', lambda m: bracket_map[m.group()], raw)
    
  • 仅支持静态替换的正则引擎(部分文本编辑器的查找替换功能属于这类)
    如果引擎支持条件替换语法,可以用下面的规则单次完成:
    查找正则:(\()|(\))|(\{)|(\})|(\[)|(\])
    替换规则:(?1\))(?2\()(?3\})(?4\{)(?5\])(?6\[)
    原理是分别捕获6种括号,判断对应捕获分组存在时就输出翻转后的括号。

注意你原本使用的三次替换方案存在隐患:如果原始字符串中本身就包含你选的临时中转字符(比如你用的\),会导致原有字符被误替换,单次替换方案不存在这个问题,安全性更高。

内容的提问来源于stack exchange,提问作者kesarling

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.09 19:27:00