基于RE2正则表达式筛选含/不含指定子串的花括号内容
针对£分隔的{...}子串的RE2正则匹配方案(Google Sheets适用)
现有字符串由多个被£分隔的{...}格式子串组成,示例:
{some text, property1: abc, property2: SUBSTRING, property3: {, ....}£{some text, property1: abc, property2: gcd, property3: fds, ....}£{some text, property1: abc, property2: SUBSTRING, property3: fds, ....}£
以下是满足需求的两个RE2正则表达式,且均可在Google Sheets中正常使用:
1. 匹配不含指定SUBSTRING的{...}子串
\{(?:(?!SUBSTRING|£)[\s\S])*\}
说明:
- 精准匹配被
£分隔的单个{...}块 - 通过负向预查确保块内不包含目标
SUBSTRING,同时不会跨£分隔符匹配其他块
2. 匹配包含指定SUBSTRING的{...}子串
\{[\s\S]*?SUBSTRING[\s\S]*?\}
说明:
- 匹配包含目标
SUBSTRING的单个{...}块 - 非贪婪匹配避免跨
£分隔符匹配多个块
Google Sheets兼容性确认
Google Sheets的正则相关函数(REGEXMATCH、REGEXEXTRACT、REGEXREPLACE)原生支持RE2语法,上述两个正则完全符合规范,可直接使用。若SUBSTRING包含正则特殊字符(如.、*、(等),需用反斜杠\转义后再替换到表达式中。
内容的提问来源于stack exchange,提问作者Ciro
相关产品推荐
相关产品推荐

