Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Знак вопроса в регулярных выражениях.

Dlazder Мудрец (16914), на голосовании 1 год назад
Почему то регулярка по типу
/текст?/ Вопросительный знак не подхватывает, а заменяет все кроме него, странно что вообще заменяет
Такая запись работает
/текст[/?/]/
Но это не самое удобное решение, желательно чтобы все решалось одной регуляркой, подскажите решение пожалуйста. Заранее спасибо!
Голосование за лучший ответ
Иван Иванов Мыслитель (5995) 1 год назад
В регулярных выражениях вопросительный знак имеет специальное значение, означающее "0 или 1 повторение предыдущего символа". Поэтому, если вы хотите использовать вопросительный знак как обычный символ, его нужно экранировать, то есть добавить перед ним обратный слеш "?". В вашем случае, регулярное выражение должно быть таким: /текст?/.

Если вы хотите найти текст, содержащий либо символ вопросительного знака, либо символы слэшей (/), можно использовать символьный класс, заключенный в квадратные скобки. Например, регулярное выражение /текст[/?]/ будет находить текст, содержащий символ вопросительного знака или символ слэша.

Также стоит учесть, что некоторые символы имеют специальное значение в регулярных выражениях и должны быть экранированы, если вы хотите использовать их как обычные символы. К ним относятся например: точка ".", звездочка "*", плюс "+", круглые скобки "()" и др.
Похожие вопросы