当前位置:  开发笔记 > 编程语言 > 正文

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

如何解决《用于获取字符后字符串中所有数字的正则表达式》经验,为你挑选了1个好方法。

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

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().



1> Rohit Jain..:

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

>>> 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']

这将查找所有数字,[直到结尾仅跟随非字符.

推荐阅读
围脖上的博博_771
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有