регулярное выражение со специальными символами в php - PullRequest
0 голосов
/ 13 апреля 2010

Я пытаюсь preg_replace charset=blablabla; и charset=blablabla" с charset=utf-8; и charset=utf-8". Пожалуйста, смотрите символы ; = и ", и, конечно, искомая строка может быть в нижнем / верхнем регистре.

Можете ли вы помочь мне?

Ответы [ 2 ]

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

Вы можете заменить значение на что-то вроде:

$subject = 'Testing... charset=baz; and charset=bat" :-)';
echo preg_replace('/(?<=charset=)[a-zA-Z0-9_-]+(?=[;"])/', 'utf-8', $subject);
// Testing... charset=utf-8; and charset=utf-8" :-)

Деконструировано, регулярное выражение соответствует:

  • Точка, следующая сразу за charset= (с использованием lookbehind )
  • Последовательность из одного или нескольких буквенно-цифровых символов, символов подчеркивания или дефиса (подлежит замене)
  • Если за ним следует точка с запятой или двойная кавычка
0 голосов
/ 13 апреля 2010

Вы можете попробовать что-то вроде этого.

echo preg_replace("#charset=[a-zA-Z0-9]+(\;)?#", "charset=utf-8$1", "charset=sdfsfsds");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...