Извлечь строку на основе регулярного выражения - PullRequest
0 голосов
/ 04 февраля 2019

Допустим, у меня есть строковая переменная

msg = "The issue is Keys on the keyboard are working intermittently . is it working? Was the Keyboard replaced earlier ?"

Я хочу извлечь все предложения между "."а также "?"также "?"а также "?"

Ожидаемый результат:

["is it working",  "Was the Keyboard replaced earlier "]

Я пытаюсь использовать этот шаблон, но не получаю ожидаемый результат

re.findall('(?<=\.).*(?=\?)',s)

Обновлена ​​строка :

msg = ". Проблема в том, что клавиши на клавиатуре работают с перебоями. Работает ли? Клавиатура была заменена ранее?"

Ответы [ 2 ]

0 голосов
/ 04 февраля 2019

[! @ # $% ^ & * (),.? ": {} | <>] Попробуйте это выражение для получения ожидаемого шаблона. Я думаю, что вы не используете правильное регулярное выражение. Это выражение будетнайти специальные символы в строках

0 голосов
/ 04 февраля 2019

Вам нужно Lazy-match.
Таким образом, регулярное выражение должно быть таким.
(?<=\.|\?).*?\?

И регулярное выражение, которое вы мне показали, не захватывало начальное предложение знака вопроса.


Тестовая строка:
The issue is Keys on the keyboard are working intermittently . is it working? Was the Keyboard replaced earlier ?

Строка регулярного выражения:
(?<=\.|\?).*?\?

Результат:
is it working?
Was the Keyboard replaced earlier ?

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