Определить, что в строке одна заглавная буква

Как с помощью регулярных выражений в python определить, что в строке только одна заглавная буква?


Ответы (2 шт):

Автор решения: Kost21
a = "abcC"
print(a.istitle())     # является ли первая буква заглавной. В данном случае вернет Fasle
print(a[3].istitle())  # является ли выбранная буква заглавной. В данном случае вернет True
→ Ссылка
Автор решения: Vladislav Pavkin

Если в вашей строке только латинские буквы, попробуйте такое решение:

import re

strings = ['abc', 'aBc', 'aBC', 'AbC']

pattern = r'[a-z]*[A-Z]{1}[a-z]*'
for string in strings:
    print(re.fullmatch(pattern, string))

Результат:

None
<re.Match object; span=(0, 3), match='aBc'>
None
None

Если же есть русские буквы или другие символы, начальную и конечную части паттерна можно попробовать доработать под вашу задачу.

→ Ссылка