正则表达式匹配随机字符串中的两位数字而不匹配3位或更多位数

时间:2012-05-25 13:20:58

标签: python regex

从字母数字字符串中我需要选择所有两位数字。

例如:input = 'abc123#d$45^abrt&89*'

output = [45, 89]

当我这样做时,即使从三位数字中选择两位数字。

数字可以是字符串中的任何位置 - 开头,中间或结尾。此外,锚点可以是任何东西(当然除了数字。)

请建议使用正则表达式或与其他字符串操作一起使用是否更好。

如果提供了python代码,将会很有帮助。

1 个答案:

答案 0 :(得分:5)

您需要lookaround assertions

>>> re.findall(r"(?<!\d)\d\d(?!\d)", "abc123#d$45^abrt&89*")
['45', '89']