ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

python – 用于获取字符后字符串中所有数字的正则表达式

2019-06-09 02:44:46  阅读:246  来源: 互联网

标签:python regex python-3-x regex-lookarounds regex-greedy


我试图解析以下字符串并返回最后一个方括号后的所有数字:

C9: Title of object (foo, bar) [ch1, CH12,c03,4]

所以结果应该是:

1,12,03,4

字符串和数字会改变.重要的是得到'[‘之后的数字,不管它前面有什么字符(如果有的话).
(我在python中需要这个,所以也没有原子组!)
我已经尝试了我能想到的一切,包括:

 \[.*?(\d) = matches '1' only
 \[.*(\d) = matches '4' only
 \[*?(\d) = matches include '9' from the beginning

等等

任何帮助是极大的赞赏!

编辑:
我也需要在不使用str.split()的情况下执行此操作.

解决方法:

您最好在最后一个[括号后面的子字符串中找到所有数字:

>>> s = 'C9: Title of object (fo[ 123o, bar) [ch1, CH12,c03,4]'
>>> # Get substring after the last '['.
>>> target_string = s.rsplit('[', 1)[1]
>>>
>>> re.findall(r'\d+', target_string)
['1', '12', '03', '4']

如果你不能使用split,那么这个可以使用前瞻断言:

>>> s = 'C9: Title of object (fo[ 123o, bar) [ch1, CH12,c03,4]'
>>> re.findall(r'\d+(?=[^[]+$)', s)
['1', '12', '03', '4']

这将找到所有数字,后面只有非[字符直到结尾.

标签:python,regex,python-3-x,regex-lookarounds,regex-greedy
来源: https://codeday.me/bug/20190609/1202083.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有