Как мне написать регулярное выражение, которое игнорирует строки, начинающиеся с определенного префикса, и объединяет все остальное в одну группу? - PullRequest
1 голос
/ 08 апреля 2010

Справочная информация:

Я пытаюсь найти регулярное выражение для правила перезаписи, которое будет принимать все, что не начинается с определенного префикса, и добавить к нему этот префикс. Но URL-адреса, которые уже имеют префикс, должны быть отклонены регулярным выражением (поскольку они уже имеют URL-адрес).

Пример:

Если префикс s1, строка типа home будет захватывать часть home. Но строка, подобная s1/home, ничего не захватит.

Таким образом, я могу добавить группу захвата в префикс, так что «home» станет «s1 / home».

Я пытался (^s1/), но мне здесь чего-то не хватает, потому что это почему-то отвергло «дом».

Ответы [ 2 ]

1 голос
/ 08 апреля 2010

Попробуйте прогнозное утверждение :

^(?!s1).*(home)

Это будет соответствовать home в любой строке, которая не начинается с s1.

1 голос
/ 08 апреля 2010
^(?!prefix)(.+)

заменить на

prefix$1

Пояснение:

^         # start-of-string
(?!       # begin negative look-ahead
  prefix  # your prefix (take care to properly regex-escape it)
)         # end negative look-ahead
(.+)      # capture the complete string to group $1
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...