为了账号安全,请及时绑定邮箱和手机立即绑定

正则表达式搜索删除单词

正则表达式搜索删除单词

噜噜哒 2022-06-07 19:05:12
我想从段落中删除前 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我想结合上面的代码,并使一个正则表达式搜索代码按照我上面的解释工作,但不影响同一行的任何其他单词。
查看完整描述

3 回答

?
一只名叫tom的猫

TA贡献1906条经验 获得超3个赞

如果你的行都是完全相同的格式,即如果你总是需要删除前 4 个单词,你可以做这样的事情,这比 RegEx 更容易理解:


# Iterate through all your lines

for 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:])


查看完整回答
反对 回复 2022-06-07
?
婷婷同学_

TA贡献1844条经验 获得超8个赞

您可以使用

re.sub(r'^(\w+\s)[\d\s]+', r'\1', text)

查看正则表达式演示a 模式将匹配

  • ^- 字符串的开始

  • (\w+\s)- 捕获组 1:一个或多个单词字符和一个空格

  • [\d\s]+- 1+ 空格或数字字符。

Python演示

import re

rx = 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


查看完整回答
反对 回复 2022-06-07
?
尚方宝剑之说

TA贡献1788条经验 获得超4个赞

您尝试的模式^\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]改用。


查看完整回答
反对 回复 2022-06-07
  • 3 回答
  • 0 关注
  • 152 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信