正则表达式搜索删除单词

我想从段落中删除前 4 个单词

原来的 : Mywebsite 21 12 34 have 10000 traffic

我想要的结果:have 10000 traffic

我有 1000 行与原始段落 ( Mywebsite 21 12 34 have 10000 traffic) 相同

我有正则表达式搜索代码,它是这样工作的:

下面的代码是从句子中删除第一个单词:

^\w+\s+(.*)  = replace with $1

以下代码将从 line 删除所有数字:

[0-9 ]+  = replace with space

我想结合上面的代码,并使一个正则表达式搜索代码按照我上面的解释工作,但不影响同一行的任何其他单词。


噜噜哒
浏览 153回答 3
3回答

一只名叫tom的猫

如果你的行都是完全相同的格式,即如果你总是需要删除前 4 个单词,你可以做这样的事情,这比 RegEx 更容易理解:# Iterate through all your linesfor line in lines:    # Split the line string on spaces to create an array of words.    words = line.split(' ')    # Exclude the 4 first words and re-join the string with the remaining words.    line = ' '.join(words[4:])

婷婷同学_

您可以使用re.sub(r'^(\w+\s)[\d\s]+', r'\1', text)查看正则表达式演示a 模式将匹配^- 字符串的开始(\w+\s)- 捕获组 1:一个或多个单词字符和一个空格[\d\s]+- 1+ 空格或数字字符。Python演示:import rerx = re.compile(r"^(\w+\s)[\d\s]+")s = "Mywebsite 21 12 34 have 10000 traffic"print( rx.sub(r"\1", s) ) # => Mywebsite have 10000 traffic

尚方宝剑之说

您尝试的模式^\w+\s+(.*)匹配 1+ 个单词字符、1+ 个空白字符,然后匹配除换行符之外的任何字符,直到字符串结尾,这样将匹配整个字符串。要删除第一个单词和以下 3 次 2 数字,您可以使用:^\s*\w+(?: \d{2}){3}\s*^字符串的开始\s*匹配 0+ 个空格字符\w+匹配 1+ 个单词字符(?: \d{2}){3}重复 3 次匹配一个空格和 2 个数字\s*匹配 0+ 个空格字符正则表达式演示| Python 演示请注意,它\s也匹配换行符。如果您只想匹配空格或制表符,则可以[ \t]改用。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python