请帮助理解为什么r'\b\w+(?=\d)(?=[A-Z])'
不匹配Python3A。
它说r'\b\w+(?=\d)(?=[A-Z])'
搜索单词后跟一个数字,然后是一个大写字母。Python3A由单词Python
、数字3
和大写字母A
组成。如果语句是正确的,那么它应该匹配Python。
Multiple Positive Lookaheads
请帮助理解为什么r'\b\w+(?=\d)(?=[A-Z])'
不匹配Python3A。
它说r'\b\w+(?=\d)(?=[A-Z])'
搜索单词后跟一个数字,然后是一个大写字母。Python3A由单词Python
、数字3
和大写字母A
组成。如果语句是正确的,那么它应该匹配Python。
Multiple Positive Lookaheads
1条答案
按热度按时间vuktfyat1#
它不匹配,因为在同一个地方有两个lookahead,其中一个Assert一个数字,另一个Assert一个大写字母。因为它们之间没有重叠,其中一个不可能是真的,所以匹配失败。你所需要的只是一个数字后跟一个大写字母的先行代码:
regex101上的正则表达式演示