#c #regex #replace
#c #регулярное выражение #заменить
Вопрос:
Я хочу заменить все в строке, кроме алфавитов, цифр и точек, пробелами в c .
Может ли кто-нибудь, пожалуйста, дать мне регулярное выражение на c , которое я могу использовать?
Я использовал [^[:alnum:]]
до сих пор, но это работает только для букв и цифр.
Спасибо!
Комментарии:
1.
except for alphabets, numbers and periods with whitespaces
… можете ли вы показать нам пример?2. Я думаю, вам просто нужно добавить точку в свой класс символов:
[^[:alnum:].]
3. @Galik Осторожно, эту точку нужно избегать AFAIK.
4. @TimBiegeleisen Я не могу проверить это на данный момент, но я думал
[]
только внутри[
,]
,-
и « нужно было экранировать.5. @Galik Я думаю, ты прав.
Ответ №1:
std::replace_if(line.begin(), line.end(),
[](char ch){ return !isalnum(ch) amp;amp; ch != '.'; }, ' ');
Не нужно спорить об экранировании.
Ответ №2:
Я не специалист по C , но вы можете попробовать добавить точки к регулярному выражению:
[^[:alnum:].]
Альтернативный:
[^a-zA-Z0-9.]
Комментарии:
1. Я думаю, что Гаятри Джейарам хочет заменить все, что не является (буквенно-цифровым или точкой), пробелом (возможно, пробелом), я не уверен, что вам нужно включать
s
.