как иметь обратную ссылку на регулярное выражение PHP?

1

Могу ли я использовать обратную ссылку для любого метода PHP regexp?

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

<?php
$r = /KEY=(['"])[^\1]*\1/
// or more simply
$r = /KEY=(['"])VAL\1/

Который будет соответствовать KEY="VAL" и KEY='VAL' но не путать с KEY="mismatch 'quotes' in val" как более простой $r=/KEY=['"].*?['"]/ бы.

Может ли любой метод PHP принять это? ПРИМЕЧАНИЕ. Чтобы это было ясно, речь идет не об использовании совпадающих ссылок (или соответствующих групп) в заменяемой части.

  • 0
    В чем вопрос? PHP поддерживает обратные ссылки в шаблоне для ссылки на ранее захваченный текст.
  • 1
    Просто чтобы быть ясно, да, PHP поддерживает обратные ссылки. Нет, это не поддерживает то, что вы написали [^\1] . Это будет в основном соответствовать ничему, а не 1 . Для имитации этого эффекта вы можете использовать (?:(?!\1).)*
Показать ещё 1 комментарий
Теги:

1 ответ

3
Лучший ответ

PHP почти полностью совместим с PCRE. Таким образом, он поддерживает обратные ссылки.

$r = "/KEY=(['\"])VAL\1/";

Ещё вопросы

Сообщество Overcoder
Наверх
Меню