我想在Python中编译一个正则表达式来搜索这些值values_list = ['4.7"', '5.1"', '5.5"']
。
此代码根本找不到5.1“
regex = re.compile(r'\b(' + '5.1"' + r')\b')
regex.findall('5.1"')
答案 0 :(得分:3)
最后一个单词边界\b
是正则表达式匹配失败的原因。将模式修改为:
regex = re.compile(r'\b(' + '5.1"' + r')')
并且它将起作用。
来自docs:
元字符\ b是一个像插入符和美元符号的锚。 它匹配一个名为"字边界的位置"。这场比赛 是零长度。
有三种不同的职位符合词边界:
- 在字符串中的第一个字符之前,如果第一个字符是a 字符。
- 字符串中的最后一个字符后,如果是最后一个字符 character是一个单词字符。
- 字符串中的两个字符之间, 其中一个是单词字符而另一个不是单词字符。
密切关注第二个要点。