Извлечение заглавных букв из границы слова - PullRequest
0 голосов
/ 17 декабря 2018

Я пытаюсь извлечь заглавный текст между "at" и "on".

s = 'visit at AIRTEL on some day'
import re
re.findall('(?<=at).[A-Z]+.(?=on)', s)

. Правильно возвращается ожидаемое слово.

Но в других случаях происходит сбой, например,

s = 'visit at AIRTEL.IN on some day'

Заглавные буквы могут содержать один или несколько специальных символов.Хотя ожидаемая строка всегда будет находиться между границами слов 'at' и 'on'.

1 Ответ

0 голосов
/ 17 декабря 2018

Используйте следующее регулярное выражение:

at\b([^a-z]*)\bon

Поскольку вы сказали, что вам нужно захватывать все, кроме строчных букв, следовательно, все, кроме A-Z и a-z становится специальных символов в этом случае.Я рекомендую использовать отрицательный набор символов.Это регулярное выражение захватывает все между at и on, которые не имеют маленьких букв.

Демо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...