python - 使用正则表达式在 Python 中拆分字符串

标签 python regex

我正在尝试在 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/

相关文章:

python - MySQL存储中文单词时,变成乱码

mysql - 匹配可选的行尾

c# - 从字符串中获取总数 'objects'

regex - 在 MS word 中查找包含单词的段落

php - 如何查看字符串是否与 PHP 正则表达式值数组匹配?

Python:矢量化列表查找

python - 如何使用 [] 作为 python 中命名函数参数的默认值?

python - 迭代字典以创建一个 DataFrame,其中列名作为字典键

python - scikit-learn 的 BallTree 出现类型错误

regex - 谷歌表格 : remove specific characters from string except decimal