我正在尝试在Python中拆分一个字符串,以便在某个正则表达式之前得到所有内容.
示例字符串: "Some.File.Num10.example.txt"
我需要在此部分之前的所有内容:"Num10",正则表达式:( r'Num\d\d'数字会有所不同,可能会有所不同).
关于如何做到这一点的任何想法?
var*_*unl 11
>>> import re
>>> s = "Some.File.Num10.example.txt"
>>> p = re.compile("Num\d{2}")
>>> match = p.search(s)
>>> s[:match.start()]
'Some.File.'
Run Code Online (Sandbox Code Playgroud)
执行拆分会更有效,因为搜索不必扫描整个字符串.它打破了第一场比赛.在你的例子中,它不会有所不同,因为字符串很短但是如果你的字符串很长并且你知道匹配将在开头,那么这种方法会更快.
我刚写了一个小程序来分析search()和split()并确认了上面的断言.
jam*_*lak 10
>>> import re
>>> text = "Some.File.Num10.example.txt"
>>> re.split(r'Num\d{2}',text)[0]
'Some.File.'
Run Code Online (Sandbox Code Playgroud)
您可以使用Python的 re.split()
import re
my_str = "This is a string."
re.split("\W+", my_str)
['This', 'is', 'a', 'string', '']
Run Code Online (Sandbox Code Playgroud)