0
  1. std::regex を使用して、C++ で入力文字列を検証する必要があります 入力文字列は、間folder-1または間である必要がありfolder-01ます(接頭辞は 'folder-' である必要があります)。folder-001folder-200

  2. C++ で使用される正規表現は、PHP や JavaScript などの他の言語で使用される正規表現とは異なりますか?

  3. ほとんどの C++ 開発者は 'Boost regx' または 'std::regex' を使用しますか (コメントをお願いします)?

4

2 に答える 2

2

使ってみて、

  System.out.println("folder-004".matches("^folder-\\d{1,3}?$"));

詳細についてはhttp://www.regular-expressions.info/reference.html

于 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 に答える