2013-08-14 4 views

ответ

2

Вы можете написать регулярное выражение, которое соответствует как подшаблонам:

qr/(?=.*?$foo)(?=.*$bar)/is 

Это использует два lookaheads, которые могут соответствовать в любом месте строки, в связи с префиксом .*.

Обратите внимание, что это более неэффективно и что подобранная подстрока будет отличаться.

+0

На сайте, на котором я работаю, будет только 1 ссылка, содержащая как $ foo, так и $ bar в этом порядке, но есть и другие ссылки, которые содержат либо $ foo, либо $ bar. Будет ли это выбирать эту конкретную ссылку? – Robert

+0

Если он всегда будет в том же порядке ('$ foo' в начале строки,' $ bar' позже), вы можете просто использовать 'qr/$ foo. * $ Bar/i' и сэкономить много усилий. – AKHolland

+0

@Robert Что сказал А.Холланд. Мое регулярное выражение AND объединяет два подподразделения (оно совпадает, если обе части совпадают). Если только одна часть должна соответствовать, просто используйте чередование: 'qr/$ foo | bar /'. – amon

 Смежные вопросы

  • Нет связанных вопросов^_^