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

标签 python regex

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

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

输出 = [45, 89]

当我这样做时,它甚至可以从三位数中挑选两位数。

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

请建议是使用正则表达式更好还是使用其他字符串操作更好。

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

最佳答案

你需要lookaround assertions :

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

关于python - 正则表达式匹配随机字符串中的两位数而不匹配 3 位或更多位数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10755179/

相关文章:

python - 你能澄清一下Python中的这个引用问题吗?

ruby - 如何删除字符串并将其移动到字符串的后面

regex - R 正则表达式,试图捕获一组

python - Pandas str.replace 跳过一些替换

python - 从图像标签创建边界框

python - 合并两个具有不同列数和列名称的 csv 文件

python - 将 View 链接到 Django 链接

java - 使用模式从 Excel 公式中提取列名称

python - 匹配第 8 个逗号后的所有内容

php - 从 url 获取域及其子域