Regex для необязательного захвата необязательно - PullRequest
0 голосов
/ 20 марта 2019

Я новичок, и я застрял на этом в течение нескольких дней. Я хочу использовать экстракт в Python для нормальных предложений без URL.
Например:

1st text: '(some normal sentences...) https://www.(...)'  
2nd text: '(some normal sentences...) '

Когда я использую r'([\w+\.\s\W\@w]+)(?:https)', он будет ловить предложения только в первом тексте.

Когда я использую r'([\w+\.\s\W\@w]+)(?:https)?', он поймает предложения во втором тексте и весь текст первого текста.

Может кто-нибудь помочь с моим Regex?

1 Ответ

0 голосов
/ 20 марта 2019

Вы можете использовать non greedy как регулярное выражение,

>>> import re
>>> x
"1st text: '(some normal sentences...) https://www.(...)\n2nd text: '(some normal sentences...)"
>>> print(x)
1st text: '(some normal sentences...) https://www.(...)
2nd text: '(some normal sentences...)
>>> re.findall(r'\(\w.+?\)', x)
['(some normal sentences...)', '(some normal sentences...)']
>>> re.findall(r'\((\w.+?)\)', x)
['some normal sentences...', 'some normal sentences...']
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...