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

こんにちは、これは動作しませんでした。 –

関連する問題