2016-10-11 147 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

嗨,这没有奏效。 –