使用regex在Python中拆分字符串

2024-05-17 19:11:30 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图在Python中分割一个字符串,以便在某个正则表达式之前获得所有内容。

示例字符串:"Some.File.Num10.example.txt"

在这部分之前,我需要所有的东西:"Num10",regex:r'Num\d\d'(数字会有所不同,后面可能还会有)。

有什么办法吗?


Tags: 字符串txt示例内容example数字somenum
3条回答
>>> import re
>>> text = "Some.File.Num10.example.txt"
>>> re.split(r'Num\d{2}',text)[0]
'Some.File.'

您可以使用Python的^{}

import re

my_str = "This is a string."

re.split("\W+", my_str)

['This', 'is', 'a', 'string', '']
>>> import re
>>> s = "Some.File.Num10.example.txt"
>>> p = re.compile("Num\d{2}")
>>> match = p.search(s)
>>> s[:match.start()]
'Some.File.'

这比分割更有效,因为搜索不必扫描整个字符串。第一场比赛就破了。在您的示例中,由于字符串很短,所以不会有什么不同,但是如果字符串很长,并且您知道匹配将在开始时进行,那么这种方法将更快。

我刚刚编写了一个小程序来分析search()和split(),并确认了上述断言。

相关问题 更多 >