2017-01-31 12 views
0

\ sや\ dのような特殊記号を含む正規表現を解析する必要があります。問題は、式を解析しているときに\を区別できないということです。'\ s' == 's'なので、特殊文字と基本文字を区別することはできません。これをどうすれば解決できますか?正規表現内のC++特殊文字

+0

おそらくhttps://regex101.com/はあなたを助けることができますか? – BinaryFr3ak

+0

いいえ、私は与えられた式を持っています: 'a \ sb'は' asb'とは違うでしょうが、正しく解析する* \\ *をキャッチできません – Michaela

答えて

1

ユーザー入力と文字リテラルが混乱しています。すべての入力文字を文字リテラル'\\'と比較することにより、ユーザ入力\を捕まえます。 C++ 11以降

1

Raw string literalsは、読みやすくするために、あなたを助けることができます。

"a\\sb" // matches: a[whitespace]b 
"a\\\\sb" // matches: a\sb 

は次のようになります。

R"(a\sb)" // matches: a[whitespace]b 
R"(a\\sb)" // matches: a\sb 
+0

2番目の例は " \\ sb' " - " b "の前の" s "に注意してください。 –

+0

@MartinBonner本当にありがとうございます。 –

関連する問題