我正在尝试构建一个正则表达式,它可以找到: aA、Aa、bB、cC, 但不适合:aB、aa、AA、aC、Ca。
-如果我们遇到小写字母,我们要检查下一个/上一个字母是否为大写 -如果我们遇到大写字母,我们要检查下一个/上一个字母是否为小写 -我们的正则表达式不应该找到大写/小写字母
我希望任何字符后面/前面都有相同的字符,但大写。
为了构建一个正则表达式以匹配您的条件,您可以使用以下模式:
(?<![a-z])[a-z](?=[A-Z])|(?<=[A-Z])[A-Z](?<![a-z])
(?<![a-z])
[a-z]
(?=[A-Z])
|
(?<=[A-Z])
[A-Z]
您可以在 Python 中使用这个正则表达式,示例如下:
import re # 正则表达式模式 pattern = r'(?<![a-z])[a-z](?=[A-Z])|(?<=[A-Z])[A-Z](?<![a-z])' # 测试字符串 test_strings = ['aA', 'Aa', 'bB', 'cC', 'aB', 'aa', 'AA', 'aC', 'Ca'] # 匹配 matches = {s: bool(re.search(pattern, s)) for s in test_strings} print(matches)
当您运行上述代码时,您将获得以下结果:
{ 'aA': True, 'Aa': True, 'bB': True, 'cC': True, 'aB': False, 'aa': False, 'AA': False, 'aC': False, 'Ca': False }