В регулярном выражении совпадают либо конец строки, либо определенный символ
У меня есть строка. Конец отличается, например index.php?test=1&list=UL
или index.php?list=UL&more=1
. Единственное, что я ищу, это &list=
.
Как я могу сопоставить его, будь то в середине строки или в конце? Пока у меня есть [&|\?]list=.*?([&|$])
, но часть ([&|$])
на самом деле не работает; Я пытаюсь использовать это, чтобы соответствовать либо &
, либо конец строки, но конец строки не работает, поэтому этот шаблон совпадает с вторым примером, но не первым.
Ответы
Ответ 1
Использование:
/(&|\?)list=.*?(&|$)/
Обратите внимание, что когда вы используете выражение в скобках, каждый символ внутри него (с некоторые исключения) будет интерпретироваться буквально. Другими словами, [&|$]
соответствует символам &
, |
и $
.