python - 从字符串中删除长度小于 4 的单词

标签 python regex

<分区>

我正在尝试从字符串中删除长度小于 4 的单词。

我使用这个正则表达式:

 re.sub(' \w{1,3} ', ' ', c)

虽然这会删除一些字符串,但是当 2-3 个长度小于 4 的单词同时出现时它会失败。喜欢:

 I am in a bank.

它给了我:

 I in bank. 

如何解决?

最佳答案

不要包含空格;使用 \b 词边界 anchor 代替:

re.sub(r'\b\w{1,3}\b', '', c)

这会完全删除最多 3 个字符的单词:

>>> import re
>>> re.sub(r'\b\w{1,3}\b', '', 'The quick brown fox jumps over the lazy dog')
' quick brown  jumps over  lazy '
>>> re.sub(r'\b\w{1,3}\b', '', 'I am in a bank.')
'    bank.'

关于python - 从字符串中删除长度小于 4 的单词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24332025/

相关文章:

Java - 正则表达式替换前导零,但不是全部并保留负号

python - ValueError : Units 'M' and 'Y' are no longer supported, 因为它们不代表明确的 timedelta 值持续时间

python - 我可以在记录时设置为 gevent greenlet 显示的自定义名称吗?

Python 无法执行终端脚本,使用 sh 或 bash

javascript - 使用正则表达式删除分隔符周围的尾随和前导空格

asp.net-mvc - ASP.NET MVC - 动态正则表达式验证器

javascript - 删除最后一个反斜杠后的所有内容

python - Pandas 无需迭代即可选择一致的更改

python - 模块未找到错误: No module named 'application' when deploying Flask app on AWS Elastic Beanstalk

c# - 多个 Regex.Replace 或 or'ed 模式?