2016-10-11 146 views
0

我想用C++中的空格替換除字母,數字和句點之外的所有內容。在C++中結合正則表達式

任何人都可以請給我一個正則表達式在c + +,我可以使用?

我到目前爲止使用的是[^[:alnum:]],但只適用於字母和數字。

謝謝!

+0

'除了字母,數字和句點與空格... ...你能告訴我們一個例子嗎? –

+1

我認爲你只需要給你的角色類添加一段時間:'[^ [:alnum:]。]' – Galik

+0

@Galik小心點,這個點需要逃過AFAIK。 –

回答

2
std::replace_if(line.begin(), line.end(), 
    [](char ch){ return !isalnum(ch) && ch != '.'; }, ' '); 

無需爭論逃逸。

+0

非常感謝!這工作。 –

2

我不是一個C++的人,但你可以嘗試添加點的正則表達式:

[^[:alnum:].] 

一種替代方案:

[^a-zA-Z0-9.] 
+1

我認爲Gayathri Jeyaram想用白色空間(可能是空格)替換所有不是(字母數字或點)的,我不確定是否需要包含'\ s'。 –

+0

嗨,這沒有奏效。 –