ing
orで終わる単語のこの Perl 正規表現に相当する Boost::Regex は何ed
ですかen
?
/ing$|ed$|en$/
...
ing
orで終わる単語のこの Perl 正規表現に相当する Boost::Regex は何ed
ですかen
?
/ing$|ed$|en$/
...
最も重要な違いは、C ++の正規表現は文字列であるため、すべての正規表現固有のバックスラッシュシーケンス(\w
および\d
は二重引用符で囲む必要があります("\\w"
および"\\d"
))
/^[\.:\,()\'\`-]/
なるべき
"^[.:,()'`-]"
特別な Perl 正規表現区切り文字/
は C++ には存在しないため、正規表現は単なる文字列です。これらの文字列では、バックスラッシュを正しくエスケープするように注意する必要があります (元の正規表現\\
のすべての場合)。\
ただし、あなたの例では、これらのバックスラッシュはすべて不要だったので、完全に削除しました。
他にも注意事項があります。私の知る限り、一部の Perl 機能 (可変長後読みなど) は Boost ライブラリには存在しません。そのため、正規表現を単純に翻訳することはできない場合があります。ただし、あなたの例は問題ないはずです。それらのいくつかは奇妙ですが。.*[0-9].*
ではなく、どこかに数値を含む任意の文字列に一致しますall numbers
。