如何在JavaScript中替换重复的复杂字符串?
解决方案:移除@...格式保留目标内容
核心正则表达式
使用正则匹配@[xxx](xxx)格式片段,提取并保留[]内的目标内容:
匹配规则:@\[([^\]]+)\]\([^)]+\)
替换为:$1(不同语言分组引用语法略有差异,以下示例会具体说明)
正则规则拆解
@\[:匹配固定开头@[([是正则特殊字符,需加反斜杠转义)([^\]]+):捕获组,匹配并保留[]内除]外的所有字符(这部分就是你需要保留的内容)\]\(:匹配]((]和(均为特殊字符,需转义)[^)]+:匹配()内除)外的所有字符(这部分是要丢弃的冗余内容)\):匹配结尾的)
代码实现示例
Python
import re input_str = '@[facts.::ip](facts.::ip) = "127.0.0.1" AND @[facts.::os](facts.::os) = "ubuntu"' output_str = re.sub(r'@\[([^\]]+)\]\([^)]+\)', r'\1', input_str) print(output_str) # 输出:facts.::ip = "127.0.0.1" AND facts.::os = "ubuntu"
JavaScript
const inputStr = '@[facts.::ip](facts.::ip) = "127.0.0.1" AND @[facts.::os](facts.::os) = "ubuntu"'; const outputStr = inputStr.replace(/@\[([^\]]+)\]\([^)]+\)/g, '$1'); console.log(outputStr); // 输出:facts.::ip = "127.0.0.1" AND facts.::os = "ubuntu"
文本编辑器快速替换(以VS Code为例)
- 打开替换面板(快捷键
Ctrl+H) - 勾选正则表达式模式(点击面板中的
.*图标) - 查找内容输入:
@\[([^\]]+)\]\([^)]+\) - 替换为输入:
$1 - 点击「全部替换」即可完成批量转换
内容的提问来源于stack exchange,提问作者Bajuldi
相关产品推荐
相关产品推荐

