InDesign中如何用GREP正则排除http/www开头字符串中的斜杠?
InDesign GREP 匹配非孤立斜杠并排除URL中的斜杠
最终可用的GREP表达式
(?<=.)(?<!\<(?:https?|www)\S*)\/(?=.)
表达式拆解
(?<=.):确保斜杠前至少有一个字符,排除左侧孤立的斜杠(?<!\<(?:https?|www)\S*):负向回溯断言,排除所有属于http/https/www开头的URL中的斜杠(\<匹配单词起始边界,\S*匹配任意数量非空白字符,确保覆盖整个URL前缀到斜杠的部分)\/:匹配斜杠本身(InDesign中也可直接写/,转义更兼容)(?=.):确保斜杠后至少有一个字符,排除右侧孤立的斜杠
为什么之前的表达式失败
你之前尝试的(?<=.)(?<!\<www|\<http)/(?=.)仅排除了斜杠直接紧跟在www或http后的情况,但URL中的斜杠往往是在http后跟随:, /等字符(比如https://),这个窄范围的负向断言无法覆盖完整的URL序列,因此失效。
验证场景
- ✅ 匹配:
Color/Colour、American English/British English中的斜杠 - ❌ 排除:
https://usa.gov/about、www.gov.uk/about中的所有斜杠 - ❌ 忽略:孤立的斜杠(如前后为空白/换行的
/)
内容的提问来源于stack exchange,提问作者Jens Draser-Schieb
相关产品推荐
相关产品推荐

