python - 与 findall() 一起使用的正则表达式模式来定位 3 个字母的单词

标签 python regex

所以我有一些代码可以产生正确的结果,但代码太具体了。我希望它更通用,以便我可以使用 re.findall() 从 's2' 中提取所有 3 个字母的单词(例如,DOG)。

在下面的代码中,问题是当我打印 m[0:3] 时,我挑选了 3 个字母的三个单词。换句话说,我的代码寻找 3 个以上字母的单词,我必须进行挑选,而我只想要 3 个字母的单词——从一开始就不多也不少。

list2 = 'A, k: it; hi! map@ LAP# rAp, home: LIFE; party! animals@'
m = re.findall(r'(\w{3,})', list2) 
m[0:3]

我想要获取['map', 'lap', 'rAP']。我希望代码将来能够保留任何其他 3 个字母单词,不多不少。

最佳答案

您可以查找正好三个由单词边界包围的单词字符:

import re

s2 = 'I, a: be; go! cat@ DOG# aRe, home: WORK; ninja! rules@'
m = re.findall(r'\b\w{3}\b', s2) 
print(m)
# ['cat', 'DOG', 'aRe']

关于python - 与 findall() 一起使用的正则表达式模式来定位 3 个字母的单词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55436767/

相关文章:

python - 如何将变量每次写入文件时换行?

python - Python有链式调用的方法吗?

regex - 如何对从 Perl 的菱形运算符返回的数据进行多行匹配

regex - 检查目录是否存在递归地反转路径

JavaScript 正则表达式格式化为多行

c# - 带有数字和特殊字符但没有字母的正则表达式

python - 是否可以将 Pandas 日期时间转换为工作日/周末和季节?

python - 签名中的显式参数不起作用?很奇怪

python - 多处理忽略 "__setstate__"

javascript - 这个 JavaScript 代码片段似乎没有去除 JavaScript 中的 Unicode 转义字符 - 为什么?