python - 正则表达式匹配最后一次出现

标签 python regex

除了这两个,我正在尝试寻找其他方法:

# match last occurence of \d+, 24242 in this case
>>> test = "123_4242_24242lj.:"
>>> obj = re.search(r"\d+(?!.*\d)", test)
>>> obj.group()
'24242'
>>> re.findall(r"\d+", test)[-1]
'24242'

最佳答案

我相信您可以找到更聪明的正则表达式来执行此操作,但我认为您应该坚持使用 findall()

正则表达式很难阅读。不仅仅是别人:从你写一篇文章到现在 10 天过去了,你也会发现阅读起来也很困难。这使得它们难以维护。

除非性能至关重要,否则最好尽量减少正则表达式所做的工作。这条线...

re.findall(r"\d+", test)[-1]

...干净、简洁且一目了然。

关于python - 正则表达式匹配最后一次出现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21822379/

相关文章:

python - 将 pandas 数据框保存到 pickle 和 csv 之间有什么区别?

Python - Pygame - 获取特定声音是否正在播放

python - 如何使用python中的子进程将两个值传递给stdin

python - 文件传送器错误 - UnboundLocalError : local variable 'classname' referenced before assignment

Java正则表达式来验证数字逗号分隔的数字和连字符

java - 使用高级正则表达式在java中分割字符串

ruby - 如何仅在某些 LaTeX 命令参数的范围内进行替换?

regex - 通过 data.table 循环 grepl() (R)

javascript - 仅允许数字和减号

python - 如何将每小时的第一行从 Pandas 数据框提取到新数据框