我希望根据字符串后面是否存在某个字符块来以不同的方式匹配字符串的开头。一个非常简化的版本是:
re.search("""^(?(pie)a|b)c.*(?P<pie>asda)$""", 'acaaasda')
如果<pie>
匹配,我想a
在字符串的开头看到,如果不是,那么我宁愿看到b
.
我会使用正常的数字前瞻,但不能保证这两个组之间将匹配或不匹配多少组。
我目前正在获取error: unknown group name
. 我的直觉告诉我,这是因为我想要的是不可能的(提前命名组并不完全是常规语言解析器的功能),但我真的真的真的很想让这个工作 - 替代方案正在废弃 4 或 5 个小时的正则表达式编写,并在明天将其全部重做为递归下降解析器或其他东西。
提前感谢您的帮助。