Описание pattern в preg_replace

tcp65

Новичок
Всем привет.

Вопрос по функции preg_replace. Во всех примерах документации используются нечитабельные для меня входные данные. Например:

$string = "April 15, 2003";
$pattern = "/(\w+) (\d+), (\d+)/i";
$replacement = "\${1}1,\$3";
echo preg_replace($pattern, $replacement, $string);

Где можно разобраться и научится писать вот эти данные - "/(\w+) (\d+), (\d+)/i"
 

fixxxer

К.О.
Партнер клуба
Помнится один чувак подорвался написать человекопонятные регэкспы
во - https://github.com/gherkins/regexpbuilderphp
Так себе затея. :)

В какой-нибудь древней Греции какой-нибудь Пифагор вместо математических обозначений тоже все записывал словами. Но когда придумали общепринятую математическую нотацию, все записи сразу стали намного компактнее и понятнее широкому кругу. Да, ее требуется изучать, но это ничто по сравнению с изучением собственно математики.

С регулярными выражениями то же самое. Их надо научиться использовать, это, конечно, не ТФКП, но все равно не очень просто. И суть тут не столько в нотации, сколько в умении понимать, какие задачи хорошо решаются регулярками, и как, собственно, эти задачи регулярками решать. А когда научишься, эта нотация будет выглядеть абсолютно естественно как для написавшего регулярку, так и (что самое важное) для любого ее читающего.

Проблема с изучением же в том, что типичная документация на PCRE описывает синтаксис, но не объясняет, как и зачем этим всем пользоваться. Поэтому лучше изучать по учебнику, типа общеизвестной книжки Фридла (хотя там многовато букв, может, что попроще уже есть, я не знаю), и тренироваться на сайтах типа https://regexr.com/
 
Последнее редактирование:

AmdY

Пью пиво
Команда форума
Сверху