我对正则表达式并不完全陌生,我在很多场合都使用过它们,但大多没有像前瞻之类的“花哨”的东西。我需要一个可以匹配以下两种模式的正则表达式:
- 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+)?")
但我做错了。