我有多个单词存储在这样的列表中:
31547 4.7072% i
25109 3.7466% u
20275 3.0253% you
10992 1.6401% me
9490 1.4160% do
7681 1.1461% like
6293 0.9390% want
6225 0.9288% my
5459 0.8145% have
5141 0.7671% your
现在我需要清理它,以便在(i)考虑到这个词并不总是(i)之前删除所有内容,但之前所有内容的格式都是相似的。我已经看到了其他类似的问题但他们每次工作时都需要/ str这个词是相同的。
提前感谢所有的帮助和建议,我已经尝试过阅读并在Regex上做教程,但我发现它很复杂,无法理解。
对于类似的问题,我需要删除我使用的括号内的所有内容:
Cleanse = re.sub('<.*?>', '', line)
但是我不确定如何操纵它来删除单词之前的所有内容,因为我会强调这是我第一次使用正则表达式的实际时间。
答案 0 :(得分:1)
要处理多行字符串,您可以使用
s = re.sub(r'^\d+[ \t]+\d+\.\d+%[ \t]*', '', s, flags=re.M)
如果您逐行处理,请使用
r = re.compile(r'^\d+\s+\d+\.\d+%\s*')
...
s = r.sub('', s)
请参阅regex demo
模式说明:
^
- 字符串的开头(或传递re.M
标志的行)\d+
- 一位或多位\s+
- 一个或多个空格\d+\.\d+
- 1位数,.
,1 +位数%
- 文字%
符号\s*
- 0+ whitespaces 请注意,在“多行”版本中,[ \t]
最好只匹配水平 ASCII空格。它也可以使用更复杂的[^\S\r\n]
模式来完成,默认情况下在Python 3.x中可以识别Unicode。