std::regex を使用して、C++ で入力文字列を検証する必要があります 入力文字列は、間
folder-1
または間である必要がありfolder-01
ます(接頭辞は 'folder-' である必要があります)。folder-001
folder-200
C++ で使用される正規表現は、PHP や JavaScript などの他の言語で使用される正規表現とは異なりますか?
ほとんどの C++ 開発者は 'Boost regx' または 'std::regex' を使用しますか (コメントをお願いします)?
2 に答える
2
使ってみて、
System.out.println("folder-004".matches("^folder-\\d{1,3}?$"));
于 2013-01-14T08:06:41.540 に答える
2
何かのようなもの
const std::regex re("folder-\\d{1,3}");
例:
http://liveworkspace.org/code/1EfD0Q $12
C++ 標準の std::regex について、または boost ドキュメントの boost::regex について読むことができます。boost::regex は安定したライブラリで、std::regex は C++11 標準の新機能です。
たとえば、gcc 4.7 はこの正規表現を処理できないため、boost を使用する方が適切です (LWS のサンプルでは、std::regex の代わりに boost::regex を使用します。gcc 4.7 の std::regex は正しく {n, m を処理できないため)。 })。
于 2013-01-14T07:21:12.737 に答える