我目前的代码是:
#include <iostream>
#include <Poco/Foundation.h>
#include <Poco/RegularExpression.h>
int main()
{
Poco::RegularExpression regex("[A-Z]+\s+[A-Z]+");
Poco::RegularExpression::MatchVec mvec;
constad std::string astring = "ABC\nDEFG";
int matches = regex.match(astring,0,mvec);
std::cout << "Hello World\n";
return 0;
}
&#39; \ n&#39;的位置在我想要匹配的字符串中,可以是单个空格,多个空格或新行(因此我使用空格元字符的原因)。
返回的匹配数为零。我需要设置一个标志吗?
答案 0 :(得分:0)
这应该有效
Poco::RegularExpression s ("\\s"); // White char
Poco::RegularExpression n ("\\n"); // New line
Poco::RegularExpression r ("\\r"); // Carrige return
Poco::RegularExpression t ("\\t"); // Tabulator
答案 1 :(得分:0)
问题在于你的正则表达式中的scape序列。
在这种情况下,您希望使用标记\
将反斜杠(astring
)添加到字符串\s
中,但在C / C ++或Java中,必须将其写为double \\
。因此,要解决您的问题,您必须添加另一个反斜杠:
Poco::RegularExpression regex("[A-Z]+\\s+[A-Z]+");
在这里你可以找到参考: