|
|
|
| Привет, помогите разобрать и понять как работают регулярные выражения на примере:
Имеется файл html
<input name="arr4_1" type="text" value="{value_arr4_1}" />
<input name="arr4_1" type="text" value="{value_arr4_2}" />
<input name="arr4_1" type="text" value="{value_arr4_3}" />
|
В параметре value мне нужно удалить подобные значения {value_arr4_1}
Заранее спасибо | |
|
|
|
|
|
|
|
для: mister_pipin
(12.03.2016 в 12:12)
| | Можно поступить следующим образом
<?php
$text = <<<HTML
<input name="arr4_1" type="text" value="{value_arr4_1}" />
<input name="arr4_1" type="text" value="{value_arr4_2}" />
<input name="arr4_1" type="text" value="{value_arr4_3}" />
HTML;
$text = preg_replace('/\{[^\}]+\}/', '', $text);
|
Фигурные скобки являются спец.символом, поэтому их следует экранировать \{ или \}. Нам нужно удалить все, что между фигурными скобками, т.е. нам нужно поместить между \{ и \} выражение, которое бы не включало закрывающую фигурную скобку. Для этого можно воспользоваться квадратными скобками [], в которые мы помещаем отрицание фигурной скобки [^\}]. Т.е. мы разрешаем все символы, кроме закрывающей фигурной скобки. Квадратные скобки всегда обозначают ровно один символ, любой из диапазона внутри квадратных скобок, но один. Для того, чтобы нам обозначить ситуацию, когда таких символов между фигурными скобками много, нам нужно воспользоваться квантором + - один или несколько символов [^\}]+. Так получилось выражение выше. | |
|
|
|