2024-05-17 19:11:30 发布
网友
我试图在Python中分割一个字符串,以便在某个正则表达式之前获得所有内容。
示例字符串:"Some.File.Num10.example.txt"
"Some.File.Num10.example.txt"
在这部分之前,我需要所有的东西:"Num10",regex:r'Num\d\d'(数字会有所不同,后面可能还会有)。
"Num10"
r'Num\d\d'
有什么办法吗?
>>> 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(),并确认了上述断言。
您可以使用Python的^{}
这比分割更有效,因为搜索不必扫描整个字符串。第一场比赛就破了。在您的示例中,由于字符串很短,所以不会有什么不同,但是如果字符串很长,并且您知道匹配将在开始时进行,那么这种方法将更快。
我刚刚编写了一个小程序来分析search()和split(),并确认了上述断言。
相关问题 更多 >
编程相关推荐