正则表达式,提取字符串末尾的单词和数字

标签 regex

我是正则表达式的初学者,遇到了一个问题但没有找到解决方案,所以假设我有一个字符串 ab123cd456,我正在尝试找到一个可以提取的正则表达式文本直到最后一个数字(如果有的话)和数字本身所以提取的结果将是 ["ab123cd", "456"] \d+$

很容易提取结束号

但我无法表达提取 ab123cd 我试过 .*(?=\d+$) 提取 ab123cd45 这对我来说很奇怪,因为 + 是一个贪婪的表达式

请注意,我需要一个表达式来完成任务

最佳答案

你需要有一个非贪婪的匹配作为第一个:

import re

lines = ["abc12cd1234"]

for line in lines:
    mre = re.match(r'(\w+?)(\d+)$', line)
    if mre:
        print mre.groups()

将打印:

('abc12cd', '1234')

关于正则表达式,提取字符串末尾的单词和数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62923196/

相关文章:

regex - Bash 在行号和模式之间获取行

php - 将字符串分解为数组

javascript - 如何正确验证电话号码字段?

regex - 如何用动态字符串替换字符串

javascript RegExp 不过滤数字

php - 从段落标签中剥离样式属性

javascript - 匹配单词和句号,但不匹配结尾的句号

java - 替换两个字符串之间的字符串

Ruby 将字符串转换为特定的数组格式

java - 在 java 中保存和检索文件扩展名时的小问题