正则表达式需求:仅匹配含空格的指定目标词组
需求:仅匹配带空格的目标词组,排除无间隔连写形式
需要用正则表达式只匹配带有空格分隔的"make ready",如果文本中出现"makeready"这类无间隔的连写形式,则不匹配。
测试场景
测试文本:This is to be in makeready of the part
预期输出:no
原测试代码(存在不符合需求的匹配分支)
import re a = "This is to be in makeready of the part" b = re.search("^.*(make ready|make\s*[\_\-\s]*\s*ready|make-ready|:make ready).*$",a) if b: print("yes") else: print("no")
修正方案
原正则包含了make-ready这类非空格分隔的匹配分支,不符合仅匹配空格分隔的要求。修正后的正则仅针对空格分隔的情况,同时通过单词边界避免匹配连写形式:
import re a = "This is to be in makeready of the part" # \b确保make和ready是独立单词,\s+匹配一个或多个空白字符 b = re.search(r"\bmake\s+ready\b", a) print("yes" if b else "no")
运行后输出:no,完全符合预期。
如果需要严格限定仅匹配空格(不包含制表符等其他空白字符),可以把正则中的\s+替换为 +。
内容的提问来源于stack exchange,提问作者Ajay
相关产品推荐
相关产品推荐

