Я пытаюсь использовать строку в регулярном выражении, чтобы вычеркнуть все символы, кроме букв, цифр, запятых, дефис и подчеркивания.PHP регулярное выражение для удаления всех символов, кроме букв, цифр, запятых, дефис и символов подчеркивания
Это регулярное выражение я использую в данный момент:
$clean_input = preg_replace("/[^,-\w]+/", "", $input);
Он возвращает это предупреждение в моем журнале PHP
PHP Warning: preg_replace(): Compilation failed: invalid range in character class at offset 5 in [file]...
Раньше я использовал тот же регулярное выражение без характер запятой, который действительно работал (кроме него все же зачищали запятые). Выглядело это так:
$clean_input = preg_replace("/[^-\w]+/", "", $input);
Если вы заканчивали this example я сделал в онлайн-инструменте регулярного выражения тестера он показывает точно такой же набор до меня в моем коде. Он возвращает результат, как я ожидал, за исключением всего, кроме запятых.
Это может вызвать проблему с помощью этого символа запятой. Я попытался убежать от него, но это дало такое же предупреждение. Спасибо за любую помощь Regex-богам!
Если вы хотите удалить все буквы, цифры или запятые, то почему вы помещаете '-' внутри класса char? –
и дефис тоже –
Что относительно символов подчеркивания? –