我对正则表达式并不完全陌生,我在很多场合都使用过它们,但大多没有像前瞻之类的“花哨”的东西。我需要一个可以匹配以下两种模式的正则表达式:
PrefTextValue13
PrefText
字符串 'Pref' 总是在那里,我想忽略它。'Text' 是我需要的一个组,它与[\w\d_]+
. 字符串“值”应该被忽略,但是当它后面必须跟一个(\d+)
我需要作为一个组捕获的数字。“值”和数字都是可选的。
示例:对于案例 1)我需要将“文本”匹配为第 1 组,将 13 匹配为第 2 组;2)我不想只匹配文本。我的尝试(众多尝试之一)是:
re.compile("Pref([\w\d_]+)(Value)?(\d+)?") or
re.compile("Pref([\w\d_]+?)(?:Value)?(?:?=Value)(\d+)?")
但我做错了。