2

次のコードが「一致しない」と出力する理由を誰かが知っていますか?

  boost::regex r(".*\\.");
  std::string s("app.test");
  if (boost::regex_match(s, r))
    std::cout << "match" << std::endl;
  else
    std::cout << "no match" << std::endl;
4

1 に答える 1

4

regex_match()は文字列全体と一致すると思います。代わりにregex_search()を試してください。

次の正規表現で機能します。

boost::regex r(".*\\..*");

およびregex_match()関数。しかし、繰り返しになりますが、regex_search()はおそらくあなたが探しているものです。

于 2009-10-08T15:01:42.180 に答える