我有一个字符串,格式如下:
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']
我做错什么了?你知道吗
您也可以这样做:
You can try it here
修复regex,可以在
\w{2,4}
周围添加单词边界。你知道吗或者
这将确保仅当名称长度2-4不是较大字符串的一部分时才匹配它们。你知道吗
RegEx似乎不需要执行此任务。您可以尝试使用逗号拆分字符串,然后使用列表进行筛选:
相关问题 更多 >
编程相关推荐