我正在尝试在 Python 中拆分一个字符串,以便在某个正则表达式之前获得所有内容。
示例字符串:"Some.File.Num10.example.txt"
我需要这部分之前的所有内容:"Num10"
,正则表达式:r'Num\d\d'
(数字会有所不同,后面可能会有所不同)。
关于如何做到这一点有什么想法吗?
最佳答案
>>> 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 - 使用正则表达式在 Python 中拆分字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10543480/