Google Sheets中Regexmatch匹配连字符前后指定内容求助
解决方案
问题核心是当前正则未限定匹配范围,(?i)全局不区分大小写会命中字符串任意位置的内容,导致A3填"gray"也能匹配右侧的"gray"。要实现仅匹配连字符两侧的指定内容,需锁定目标区域后再匹配:
匹配连字符左侧内容(A3)
拆分提取版(更直观)
先提取连字符左侧的文本,再做不区分大小写的全匹配:
=REGEXMATCH(REGEXEXTRACT(A2, "^.*?(?=\s-\s)"), CONCATENATE("(?i)^", A3, "$"))
REGEXEXTRACT(A2, "^.*?(?=\s-\s)"):提取A2中从开头到-(空格-空格)之前的内容,即示例中的"umbrela"CONCATENATE("(?i)^", A3, "$"):生成不区分大小写的全匹配规则,确保A3内容与提取的左侧文本完全一致(允许大小写差异,比如A3填"UMBRELA"也会返回TRUE)
单正则版(更简洁)
直接用正则锁定左侧区域:
=REGEXMATCH(A2, CONCATENATE("(?i)^", A3, "\s-\s.*$"))
解释:确保A3内容出现在字符串开头,且紧跟-和右侧内容,只有A3对应左侧文本时才会匹配。
匹配连字符右侧内容(A4)
拆分提取版
先提取连字符右侧的文本,再做不区分大小写的全匹配:
=REGEXMATCH(REGEXEXTRACT(A2, "(?<=\s-\s).*$"), CONCATENATE("(?i)^", A4, "$"))
REGEXEXTRACT(A2, "(?<=\s-\s).*$"):提取A2中-之后的内容,即示例中的"gray"- 正则逻辑与左侧一致,确保A4内容与右侧提取文本完全匹配(允许大小写差异)
单正则版
直接用正则锁定右侧区域:
=REGEXMATCH(A2, CONCATENATE("(?i)^.*\s-\s", A4, "$"))
解释:确保A4内容出现在字符串末尾,且前面是左侧内容和-,只有A4对应右侧文本时才会匹配。
内容的提问来源于stack exchange,提问作者Joao S
相关产品推荐
相关产品推荐

