0

次のような文字列に一致するboost.regex式を作成したいとします。

"繰り返し:5 aaaaa" "繰り返し:3 aaa"

ブーストでこれを行う方法はありますか?

4

1 に答える 1

0

特に boost::regex は使用していませんが、求めている正規表現は簡単です。boost::regex ドキュメントを見ると、次のようなことをするようです。

boost::regex e("repetitions:\\s+\\d\\s+[a-zA-Z]+");

(二重スラッシュは、エスケープ シーケンスがコンパイラによって飲み込まれないようにするためのものです)

注: 最初の数字が文字 'a' の数字と一致することも検証しようとしている場合、正規表現だけでは機能しません。正規表現は文字のみに一致し、その意味についての手がかりがないため、「5」と「3」は数値的には見られません。Capturesに関するドキュメントを参照してください。数値を文字列として取得し、lexical_castそれを整数にして、それを使用してaaaaaパーツを検証する必要があります。

于 2012-09-03T17:26:25.697 に答える