Я новичок в регулярном выражении и php, но у меня проблема, с которой я не могу справиться в одиночку.Использование backreference wit php preg_match_all
Я подготовил это регулярное выражение, чтобы найти шаблоны, начинающиеся с буквы верхнего регистра. Это может звучит что-то вроде:
захвата любого узора, который
начинается с один или более прописной буквой
затем один или более любая буква или символами в списке
затем пробел или знак препинания
, и я использую обратную ссылку для установки Я хочу, чтобы те шаблоны в 3 раз:
([A-ZÁÀÂÄÉÈÊËÍÌÎÏÓÒÔÖÚÙÛÜ]{1,}[a-zàáâãäåçèéêëìíîïðòóôõöùúûüýÿ;:«0-9]{1,}[\s-….?,;]\1{1,3})
По https://regex101.com/r/pB3nY7/2 работает как яваскрипт регулярных выражений, но не как PHP регулярных выражений.
Я Роде другие сообщения и убедитесь, что:
Я использую одинарные кавычки вместо двойных кавычек
и я «защищенные» папке \ в моем PHP скрипт:
'#([A-ZÁÀÂÄÉÈÊËÍÌÎÏÓÒÔÖÚÙÛÜ]{1,}[a-zàáâãäåçèéêëìíîïðòóôõöùúûüýÿ;:«0-9]{1,}[\\s-….?,;]\\1{1,3})#'
Но он по-прежнему не может соответствовать шаблону, начинающемуся с буквы верхнего регистра.
Заранее спасибо за все советы вы можете предоставить,
С уважением,
Чарльз
В группе PCRE '\ 1' внутри группы 1 все еще не инициализируется, поэтому она терпит неудачу. JS ведет себя по-разному, '\ 1' всегда является пустой строкой, если она не инициализирована. Я думаю, что вам вообще не нужен '\ 1'. См. ['([A-ZÁÀÂÄÈÊËÍÌÎÏÓÒÔÖÚÛÛÜ] {1,} [a-zàáâääçèéêëìíîïðòóôõöùúûüûÿÿ;:« 0-9] {1,} [\ s- ....?,;] {1,3}) '] (https://regex101.com/r/dT1gQ3/1). Разве это не соответствует тому, что вам нужно? –
Спасибо, Виктор. Я хотел воспользоваться возможностью этого регулярного выражения, чтобы узнать, как работают backreference, но ваше решение проще. Спасибо – Charles
Опубликовать как ответ? –