объединение регулярных выражений в c

#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 .