정규 표현식에 대해 검사 할 문자열을 보유하고있는 하나의 정규 표현식과 하나의 벡터를 갖는 벡터가 두 개있다. 대부분은 작동한다. 이 문자열 (아래에 표시)을 제외하고는 문자열이 올바른 문자열이고 정규 표현식과 일치하지만 올바른 문자열이 아니라 잘못된 문자열을 출력합니다.나의 마지막 정규 표현식은 작동하지 않지만 그 이유를 알 수 없다.
입력 문자열
.C/IATA
CODE 아래
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");
}
성 [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 차원 배열입니다. –