python - 删除 Python 中用点分隔的字符串的最后一部分

标签 python regex

如何以优雅的方式转换字符串,例如:

'test.test1.test2'
'test.test3.test4'

像这样的字符串:

'test.test1'
'test.test3'

最佳答案

这里不需要正则表达式。

使用str.rsplit() :

output = inputstr.rsplit('.', 1)[0]

str.rpartition() :

output = inputstr.rpartition('.')[0]

str.rpartition() 是两者中较快的,但您需要 Python 2.5 或更新版本。

演示:

>>> 'test.test1.test2'.rsplit('.', 1)[0]
'test.test1'
>>> 'test.test1.test2'.rpartition('.')[0]
'test.test1'
>>> 'test.test3.test4'.rsplit('.', 1)[0]
'test.test3'
>>> 'test.test3.test4'.rpartition('.')[0]
'test.test3'

以及与一百万次运行的时间比较:

>>> from timeit import timeit
>>> timeit("s.rsplit('.', 1)[0]", "s = 'test.test1.test2'")
0.5848979949951172
>>> timeit("s.rpartition('.')[0]", "s = 'test.test1.test2'")
0.27417516708374023

您可以以 100 万次 str.rsplit() 的价格运行 200 万次 str.rpartition() 调用。

关于python - 删除 Python 中用点分隔的字符串的最后一部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22125782/

相关文章:

python - 使用 pint 获取特定维度的所有单位

python - seaborn箱线图的子图

python - geodjango 从原始 SQL 返回 geojson

javascript - 如果选择使用正则表达式/反向引用替换或拆分/替换,您会选择哪一个?

python - 如何使 FunctionTransformer 在 DataFrameMapper 中工作

mysql - 将参数传递给 SQL 正则表达式

php - 解析 youtube 链接 PHP

regex - 如何只分组单词,没有空格?

regex - Visual Studio Code 使用什么类型的正则表达式?

python - 如何将列表复制一定次数