私は正規表現を保持する1つのベクトルと、正規表現に対してチェックされる文字列を保持する1つのベクトルを持っています。この文字列を除いて、この文字列(以下を参照)を除いて、文字列は正しい文字列で正規表現と一致しますが、正しい文字列ではなく正しくない文字列を出力します。私の最後の正規表現は機能しませんが、理由はわかりません
入力文字列
.C/IATA
以下のコードは
std::string errorMessages [6][6] = {
{
"Correct Corparate Name\n",
},
{
"Incorrect Format for Corporate Name\n",
}
};
std::vector<std::string> el;
split(el,message,boost::is_any_of("\n"));
std::string a = ("");
for(int i = 0; i < el.size(); i++)
{
if(el[i].substr(0,3) == ".C/")
{
DCS_LOG_DEBUG("--------------- Validating .C/ ---------------");
output.push_back("\n--------------- Validating .C/ ---------------\n");
str = el[i].substr(3);
split(st,str,boost::is_any_of("/"));
for (int split_id = 0 ; split_id < splitMask.size() ; split_id++)
{
boost::regex const string_matcher_id(splitMask[split_id]);
if(boost::regex_match(st[split_id],string_matcher_id))
{
a = errorMessages[0][split_id];
DCS_LOG_DEBUG("" << a)
}
else
{
a = errorMessages[1][split_id];
DCS_LOG_DEBUG("" << a)
}
output.push_back(a);
}
}
else
{
DCS_LOG_DEBUG("Do Nothing");
}
ST [split_id] = "IATA"
splitMask [split_id] =「[Aは-zA-Z] {1,15} "< ---
しかし、それはまだ、企業名
ため不正な形式を出力し、誰かが私をここにしてください助けることができる正しいはずとき、それは間違って印刷し、なぜ私が見ることができませんか?
あなたの式の中括弧をエスケープする必要があります: '' [a-zA-Z] \ {1,15 \} "'? –
@JoachimPileborgいいえ、どちらも動作しませんでした – CodersSC
なぜstd :: string errorMessages [6] [6]を使用していますか?これは、要素[0] [0]と[1] [0]のみを初期化する36文字列の文字列オブジェクトの2次元配列です。 –