【发布时间】:2020-10-14 18:00:10
【问题描述】:
我正在尝试删除长度低于 2 的单词和任何数字单词。例如
s = " This is a test 1212 test2"
想要的输出是
" This is test test2"
我试过\w{2,},这会删除所有长度小于2的单词。当我添加\D+时,当我不想从test2中删除2时,这会删除所有数字。
【问题讨论】:
-
@P....这不会删除 1212。应该删除它,因为它是一个数字。我能够通过 \w{2,} 删除所有不超过 2 个单词的单词
-
什么是“词”?
-
@Maxt8r,单词是字母字符或可能包含数字字符的字母字符。比如测试。 test1, tes2 是单词,而 1 , 2, 0.2 0.4 不是单词
-
2 个字母的要求是连续的还是在“单词”内?
-
非正则表达式解决方案:
" ".join([x for x in s.split() if not x.isdigit() and not (x == x[0] and x.isalpha())])(demo)。只有尾随/前导空格会被删除。