相关文章推荐
胡子拉碴的斑马  ·  VIM ...·  2 月前    · 
耍酷的抽屉  ·  Convertfrom-Json not ...·  2 月前    · 
寂寞的芹菜  ·  A4纸网页打印 ...·  1 年前    · 
想旅行的热水瓶  ·  创建工作信息_江门市市场监督管理局·  1 年前    · 
一直单身的抽屉  ·  8位北舞走出的女星,北舞老师:我培养的人才, ...·  2 年前    · 
不爱学习的电梯  ·  C#类和结构详解_C#教程_脚本之家·  2 年前    · 
Code  ›  Python正则表达式删除数字和带标点的数字开发者社区
python 正则表达式
https://cloud.tencent.com/developer/ask/sof/127291
伤情的豌豆
2 年前
首页
学习
活动
专区
工具
TVP
返回腾讯云官网
提问
问 Python正则表达式删除数字和带标点的数字
Stack Overflow用户
提问于 2016-09-20 06:09:22
EN

我有以下字符串

 line = "1234567 7852853427.111 https://en.wikipedia.org/wiki/Dictionary_(disambiguation)"

我想用正则表达式去掉数字1234567 7852853427.111

我有这个re

nline = re.sub("^\d+\s|\s\d+\s|\s\d\w\d|\s\d+$", " ", line)

但它并没有做我希望它做的事情。

谁能给我指个方向?

4 8K 0 票数 4
EN
python
regex

回答 4

Stack Overflow用户

回答已采纳

发布于 2016-09-20 06:12:51

您可以使用:

>>> line = "1234567 7852853427.111 https://en.wikipedia.org/wiki/Dictionary_(disambiguation)" 
>>> print re.sub(r'\b\d+(?:\.\d+)?\s+', '', line)
https://en.wikipedia.org/wiki/Dictionary_(disambiguation)

正则表达式 \b\d+(?:\.\d+)?\s+ 将匹配后面跟着1个或多个空格的整数或十进制数字。 \b 代表单词边界。

票数 5
EN

Stack Overflow用户

发布于 2016-09-20 06:18:30

如果您的正则表达式要求不是完全严格,这里有一个非正则表达式方法,使用 itertools.dropwhile

>>> ''.join(dropwhile(lambda x: not x.isalpha(), line))
'https://en.wikipedia.org/wiki/Dictionary_(disambiguation)'
票数 2
EN

Stack Overflow用户

发布于 2016-09-20 06:29:47

我想这就是你想要的:

nline = re.sub("\d+\s\d+\.\d+", "", line)

它从行中删除数字。如果你想保留"http...“前面的空格你的第二个参数当然应该是“”。

如果您还想记录单个数字字符串,您可以将它们放在如下所示的组中:

>>> result = re.search("(\d+)\s(\d+\.\d+)", line)
 
推荐文章
胡子拉碴的斑马  ·  VIM 用正则表达式,非贪婪匹配,匹配竖杠,竖线, 匹配中文,中文正则,倒数第二列, 匹配任意一个字符 : - xxxxxxxx1x2xxxxxxx
2 月前
耍酷的抽屉  ·  Convertfrom-Json not working - PowerShell Help - PowerShell Forums
2 月前
寂寞的芹菜  ·  A4纸网页打印 html网页页面的宽度设置成多少_html打印a4尺寸-CSDN博客
1 年前
想旅行的热水瓶  ·  创建工作信息_江门市市场监督管理局
1 年前
一直单身的抽屉  ·  8位北舞走出的女星,北舞老师:我培养的人才,都被拐去当演员了_舞蹈_王丽坤_芭蕾舞
2 年前
不爱学习的电梯  ·  C#类和结构详解_C#教程_脚本之家
2 年前
今天看啥   ·   Py中国   ·   codingpro   ·   小百科   ·   link之家   ·   卧龙AI搜索
删除内容请联系邮箱 2879853325@qq.com
Code - 代码工具平台
© 2024 ~ 沪ICP备11025650号