浏览并从正则表达式中提取字符类

2024-04-26 22:06:33 发布

您现在位置:Python中文网/ 问答频道 /正文

所以问题有点相反:我有一个正则表达式,希望从中提取可能性。我还没有字符串,我只是想知道什么匹配。例如:

import re
license = re.compile("^[0-9]{3}[A-Z][0-9]{3}$")

我知道当使用re.DEBUG时,字符类的列表是按顺序显示的。还显示了静态字符。这正是我想要得到的,一个表示正则表达式“部分”的对象列表。第一个表示字符串的开头,第二个表示一个字符类,包括0到9,并重复三次,依此类推

使用正则表达式可以吗?我知道应该是相反的

谢谢你的帮助


Tags: 对象字符串debugimportre列表顺序license
1条回答
网友
1楼 · 发布于 2024-04-26 22:06:33

这很有帮助,谢谢。所以,如果有人需要它,我会把我找到的贴出来。实现这一点的方法是探索正则表达式。这不是直截了当的,它需要一些额外的编码,但是如果您的用例很简单(像我的),您就不必太担心分支或其他高级特性

>>> re.sre_parse.parse("^[0-9]{3}[A-Z][0-9]{3}$").data
[('at', 'at_beginning'), ('max_repeat', (3, 3, [('in', [('range', (48, 57))])])), ('in', [('range', (65, 90))]), ('max_repeat', (3, 3, [('in', [('range', (48, 57))])])), ('at', 'at_end')]
>>>

所以我们这里有这些信息,我们只需要尽可能整洁地处理它们。一些第三方库允许使用基本正则表达式随机生成,但这在Python中是现成的(可能是非常旧的版本)

相关问题 更多 >