请帮助理解为什么r'\b\w+(?=\d)(?=[A-Z])'
与Python3A不匹配.
它说r'\b\w+(?=\d)(?=[A-Z])'
搜索单词,后跟一个数字,然后是一个大写字母.Python3A由单词Python
后跟数字3
和大写字母A
组成.如果这句话是正确的,那么它应该匹配Python.
请帮助理解为什么r'\b\w+(?=\d)(?=[A-Z])'
与Python3A不匹配.
它说r'\b\w+(?=\d)(?=[A-Z])'
搜索单词,后跟一个数字,然后是一个大写字母.Python3A由单词Python
后跟数字3
和大写字母A
组成.如果这句话是正确的,那么它应该匹配Python.
它不匹配,因为您在同一位置有两个LookHead,其中一个断言数字,另一个断言大写字母.因为它们之间没有重叠,所以其中一个不可能是真的,因此匹配失败.您需要的只是一个数字后跟大写字母的单一查找:
\b\w+(?=\d[A-Z])
regex101上的Regex演示