如何用正则表达式在BBEdit中定位重复模式中的特定单词?
BBEdit正则匹配替换方案:移除重复前置地名
需求匹配逻辑
只处理包含- [重复地名] in [重复地名]的行,保留in [地名]部分;对仅含in [地名]的无重复行不做修改。
正则表达式设置
- 查找模式(Grep):
- (\w+(?: \w+)*) in \1 - 替换内容:
in \1
正则规则解释
-:精准匹配分隔符「空格-空格」(\w+(?: \w+)*):捕获组1,匹配支持多词的地名(比如Brooklyn或Los Angeles),非捕获组(?: \w+)避免额外生成无效分组in:匹配固定字符串「空格in空格」\1:反向引用捕获组1的内容,确保前后地名完全一致,避免误替换不同地名的行
效果验证
原始文本:5th Ave Fitness - Brooklyn in Brooklyn, New York
替换后:5th Ave Fitness in Brooklyn, New York
原始文本:10GYM in Oklahoma City, OK
替换后:10GYM in Oklahoma City, OK(无修改)
BBEdit操作步骤
- 打开查找替换窗口(快捷键
Cmd+F) - 勾选窗口中的「Grep」选项,启用正则匹配
- 分别填入上述查找和替换内容
- 先点击「查找全部」确认匹配范围,再执行「全部替换」
内容的提问来源于stack exchange,提问作者JustPlainBill
相关产品推荐
相关产品推荐

