正则表达式为什么匹配不到Group(3)?解决方法
正则表达式为什么匹配不到Group(3)?
我用"event:(.*)\\|(\\d+)\\|(.*)"为什么匹配不到"event:release|4|9a631c7d-5c54-43e0-99a6-76f89bf7910e|80709283-ee51-45ef-9b20-a46ef4d1a570"
的Group(3)呢?要怎么解决?我用的是跨平台的deelx正则库
------解决方案--------------------
"event:([^|]*)\\|(\\d+)\\|([^|]*)\\|([^|]*)"
------解决方案--------------------
被 .*坑过多次,于是再不敢用 .*了
- C/C++ code
bool TestRegex(char *lpLink) { string strLink(lpLink); static CRegexpT<char> rgxField("event:(.*)\\|(\\d+)\\|(.*)", IGNORECASE); MatchResult matchresult = rgxField.Match(strLink.c_str()); bool bRet = matchresult.IsMatched()!=0; if(bRet) { printf("TestRegex MaxGroupNumber=%d:\n",matchresult.MaxGroupNumber()); for(int i=1;i<matchresult.MaxGroupNumber();i++) { int nStart = matchresult.GetGroupStart(i);//event:release|2| int nEnd = matchresult.GetGroupEnd(i); string strType = strLink.substr(nStart, nEnd-nStart); printf("%s\n",strType.c_str()); } } return bRet; } TestRegex("event:release|4|9a631c7d-5c54-43e0-99a6-76f89bf7910e|80709283-ee51-45ef-9b20-a46ef4d1a570");
我用"event:(.*)\\|(\\d+)\\|(.*)"为什么匹配不到"event:release|4|9a631c7d-5c54-43e0-99a6-76f89bf7910e|80709283-ee51-45ef-9b20-a46ef4d1a570"
的Group(3)呢?要怎么解决?我用的是跨平台的deelx正则库
------解决方案--------------------
"event:([^|]*)\\|(\\d+)\\|([^|]*)\\|([^|]*)"
------解决方案--------------------
被 .*坑过多次,于是再不敢用 .*了