Regex(Python)澄清返回精确的'X'字母[重复]

sz81bmfz  于 2023-08-08  发布在  Python
关注(0)|答案(1)|浏览(98)

此问题在此处已有答案

Regular Expression in Python: Find words of length n or longer [duplicate](1个答案)
10天前关门了。
我正在复习Python中的RegEx技能,并尝试做一些练习题。提示符要求我从下面的字符串中找到正好包含8个字母的单词

import re

str='''Au pays parfume que le soleil caresse,
J'ai connu, sous un dais d'arbres tout empourpres
Et de palmiers d'ou pleut sur les yeux la paresse,
Une dame creole aux charmes ignores.'''

字符串
这里是规定的解决方案:

regex = r'\w{8}'

emails=re.findall(regex, str)

print(emails)


返回['empourpr','palmiers']。然而,'empourpr'不是一个单独的单词,而是一个更大的字符串('empourpres')的一部分。RegEx似乎引入了一些不符合re.findall中使用的字母数字长度组合的东西,这有什么原因吗?还有什么最好的做法来避免这样的事情吗?谢谢你,谢谢

ep6jt1vc

ep6jt1vc1#

您可以使用词边界来避免在较长的词的部分获得联系人,请考虑以下简单的示例

import re
text = "quick fox jumps over the lazy dog"
print(re.findall(r'\b\w{3}\b',text))

字符串
给出输出

['fox', 'the', 'dog']

相关问题