Отвечая на вопрос:
Я хочу, чтобы объединить два регулярных выражений в единую линию ... Мне нужно обе функциональные возможности (ссылки, содержащие 'http'
, а также /news/
)
Я понимаю , а также как как требование как для http
, так и для /news/
, чтобы присутствовать в строке. Таким образом, вы можете использовать простой
re.compile(r'^http://.*/news/')
Это будет соответствовать http
в начале и /news/
подстроку где-то внутри строки. Подробнее
Pattern:
^
- начало строки
http://
- последовательность буквенных символов
.*
- 0+ любых символов, кроме символа новой строки
/news/
- подстрока /news/
.
Чередование, чтобы получить результаты с либоhttp
на старте или/news/
внутри
Оператор |
Чередование используется внутри шаблона регулярных выражений, а не между ними регулярных выражений шаблонов внутри re.compile
:
re.compile(r'^http://|/news/')
^
Здесь ^
относится только к http
(первая ветка).^http://
соответствует http://
при начале строки -OR- /news
ответвление /news/
в любом месте внутри строки. Таким образом, все значения будут сопоставлены с либоhttp
в начале, либо /news/
внутри строки.
Используйте 're.compile (r '^ http: // |/news /')' - если вам нужно условие ИЛИ, или 're.compile (r '^ http: //.*/news/') 'для соответствия' http' в начале и '/ news /' где-то в строке. –
Нет! Я хочу И условие. not OR – user6575792
Отлично, я добавил оба решения, но я вижу, что был прав, когда я решил с самого начала остановиться на состоянии И. –