gpt4 book ai didi

python - 匹配以逗号分隔的精确长度的所有单词

转载 作者:太空宇宙 更新时间:2023-11-03 14:39:57 25 4
gpt4 key购买 nike

我有一个这种格式的字符串:

text = "Louis,Edward,John,Billy,Don,Dean"

我想从这个字符串中提取所有长度在 2 到 4 之间的名字。如果列表中只有一个名字,则没有逗号:

text = "Louis"

我正在尝试使用这个正则表达式:

import re
pattern = re.compile('(\w{2,4})(,\w{2,4})*')
search_result = pattern.findall('Louis,Edward,John,Billy,Don,Dean')
print(search_result)

结果是:

[('Loui', ''), ('Edwa', ''), ('rd', ',Bill'), ('Don', ',Dean')]

虽然我希望是:

['John', 'Don','Dean']

我做错了什么?

最佳答案

修复正则表达式,您可以在 \w{2,4} 周围添加单词边界。

re.findall(r'\b\w{2,4}\b', text)
# ['John', 'Don', 'Dean']

或者,

p = re.compile(r'\b\w{2,4}\b')
p.findall(text)
# ['John', 'Don', 'Dean']

这将确保长度为 2-4 的名称仅在不属于较大字符串的一部分时才匹配。

关于python - 匹配以逗号分隔的精确长度的所有单词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54175438/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com