Google Sheets REGEXMATCH函数精准匹配独立“hip hop”的正则写法咨询
Google Sheets REGEXMATCH函数精准匹配独立“hip hop”的正则写法咨询
嘿,我来帮你搞定这个正则匹配的问题!你的需求是在逗号分隔的列表里精准匹配独立的"hip hop"——不管它在列表开头、中间还是结尾,周围只能是逗号或者字符串的首尾,不能带其他前缀后缀对吧?
先说说你原来公式的问题:你写的"(\\W|^)(,\\ship\\shop,)(\\W|$)"硬把前后的逗号写死了,这样会漏掉开头(没有前置逗号)和结尾(没有后置逗号)的情况,而且\W的范围太宽,可能会匹配到其他非逗号的符号,不够精准。
给你一个能完美覆盖所有场景的正则表达式:
(^|,\s*)hip hop(\s*,|$)
我给你拆解下这个正则的逻辑:
(^|,\s*):匹配字符串的开头,或者逗号加上任意数量的空白字符(用来处理逗号和"hip hop"之间可能存在的空格)hip hop:就是你要精准定位的目标文本(\s*,|$):匹配任意数量的空白字符加上逗号,或者字符串的结尾(处理"hip hop"和逗号之间的空格,以及列表末尾的情况)
对应的Google Sheets公式就是:
=REGEXMATCH(LIST, "(^|,\s*)hip hop(\s*,|$)")
你可以测试下这两种场景:
- 对于
atl hip hop, dirty south rap, hip hop, pop rap,会精准匹配到中间的独立"hip hop" - 对于
hip hop, dirty south rap, pop rap,会匹配到开头的独立"hip hop"
哪怕列表里"hip hop"前后的空格数量不确定,这个正则也能适配,因为\s*会匹配0个或多个空白字符。
备注:内容来源于stack exchange,提问作者pjgei
相关产品推荐
相关产品推荐

