如何用正则表达式匹配双大括号内无前后空格的内容?
解决方案
你可以修改正则表达式,跳过双大括号内的前后空白字符,只捕获中间的有效内容:
/(?<=\{\{\s*)\S+?(?=\s*}})/g
规则解释:
(?<=\{\{\s*):正向断言,匹配{{后跟随任意数量空白字符的位置\S+?:匹配一个或多个非空白字符,非贪婪模式避免过度匹配(?=\s*}}):正向断言,匹配内容后跟随任意数量空白字符和}}的位置
用你的示例文本{{ test }} {{test}} {{ test}} {{test }}测试,这个正则会直接返回四个test结果,完全符合需求。
如果后续需要支持内容包含内部空格的场景,可把\S+?替换为.*?,再通过捕获组提取后做trim处理,但针对你当前"无内部空格内容"的需求,\S+?是最优选择。
内容的提问来源于stack exchange,提问作者Mahdi Hasani
相关产品推荐
相关产品推荐

