2016-04-27 15 views
-1

文字列(stdinからの入力)がinputStringと表示されています。C++でregexで変数を使用するには?

私がしたいのは、この可変文字列の一部を含む正規表現と一致します。たとえば、入力文字列がstackoverflowの場合は、stackoverflo[a-z]と一致するか、stack[a-z]overflowと入力してください(最初の5文字、一部の1文字、残りの入力)

どうすればよいですか?私はおそらく、実行時に別の文字列を生成する必要があると思いますが、どうやってこれを行うのかはわかりません。

+0

?あなたは 'inputString'または特定のものの_any_部分にマッチする正規表現を構築したいですか? – hyst329

+0

['std :: string'](http://en.cppreference.com/w/cpp/string/basic_string)と[' std :: stringstream'](http://en.cppreference .com/w/cpp/io/basic_stringstream)は、部分文字列の抽出と文字列の作成を提供します。あなたが立ち往生したら、それでは、もう一度戻ってきてください。 – StoryTeller

+0

@ hyst329文字列の特定の部分 –

答えて

3

は、あなただけの

std::string regex_string = inputString.substr(0, inputString.size() - 1) + "[a-z]"; 
... 
string regex_string = inputString; 
regex_string.insert(5, "[a-z]"); 

は、あなたは、コピー、消去または挿入するための指標をどのように動作するかを決定する必要があります....通常std::stringinserterasesubstr、連結を使用します。あなたが欲しいregex_stringは、ちょうどregexライブラリ関数に供給した後

... _exactly_は、あなたがしたいですか何

std::regex re(regex_string); 
std::smatch match; 
if (std::regex_search(my_string_to_match_against, match, re)) ... 
関連する問題