我想匹配输入字段中给出的字符串。
A sample data could be "hello" -> returns true
or "\"" -> returns true
or "this is a string" -> returns true
but """ should not be recognized as a string and should return false when checked by the regexp.
我正在初始化一个boost正则表达式解析器,如下所示:
std::string myString = "\"\"\"";
boost::smatch match;
boost::regex regExpString3("[\"']((:?[^\"']|\\\")+?)[\"']");
bool statusString3 = boost::regex_match(myString, match, regExpString3);
regex_match不应该匹配,但不幸的是它匹配...
我检查了几个在线reggex测试器:我的正则表达式不匹配(如预期的那样)。
任何想法,如果这可能是一个提升的错误或我做错了什么?
Debuggex Demo: Click me to verify ("[\"']((:?[^\"']|\\")+?)[\"']"
由于
答案 0 :(得分:1)
答案 1 :(得分:0)
对于这个简单的检查,正则表达式是过度的。只需检查字符串是否有开头的引号,然后搜索下面没有反斜杠的引号。如果第二个引号不在末尾,则字符串的格式不正确。