Что означает `&` в PCRE?

Попытался выполнить поиск в документации PCRE. Ничего не нашел.

Что означает & в PCRE?

Видел его использование в таком выражении:

(^|&)p=(about_us|contact)(&|$) [NC]

в этом вопросе: RewriteCond %{REQUEST_URI}: как остановить, если REQUEST_URI содержит ?p=about или ?p=contact

Я знаю значения ^, $ и |. а также группировка.


person ThinkingMonkey    schedule 20.01.2012    source источник
comment
Это не имеет особого значения. Не могли бы вы вставить полное выражение?   -  person BoltClock    schedule 21.01.2012
comment
& — это обычный символ, который будет совпадать.   -  person a'r    schedule 21.01.2012
comment
@BoltClock опубликовал полное выражение.   -  person ThinkingMonkey    schedule 21.01.2012


Ответы (2)


Это не имеет особого значения.

Я предполагаю, что выражение просто пытается сопоставить либо начало, либо конец строки запроса, либо буквальный символ & на любом конце строки запроса. Помните, что & обычно используется для разделения параметров строки запроса.

person BoltClock    schedule 20.01.2012

^ =the start of the phrase
$ = the end of the word
| = or operator (ab|bc) will accept both ab and bc
& doesnt have special meaning

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

RewriteRule ^(.*)$ index.php?r=$1

это возьмет файл, к которому осуществляется доступ, и передаст его как параметр r в файл index.php

фраза, которую вы вставили, ищет 4 разные ситуации. 1. p=... [как весь qs] 2. qs начинается с p=...&, но содержит и другие параметры 3. &p=... - p является последним параметром 4. &p=.. .& - p находится в середине qs

person Yaron U.    schedule 20.01.2012