我使用System::Text::RegularExpressions::Regex
尝试在日志文件中查找启动消息。我的表达式如下:我的正则表达式有什么问题?
using namespace System::Text::RegularExpressions;
Regex^ logStartRegex = gcnew Regex("^=+ .* \\((\\d+)/(\\d+)/(\\d+) @ (\\d+):(\\d+):(\\d+)\\) (.*) =+", static_cast<RegexOptions>(RegexOptions::Compiled | RegexOptions::IgnoreCase));
...和我的测试数据:
========= Logging started (07/10/2011 @ 15:38:54) v1.000 AA000 =========
...但是当我做了以下我没有得到一个匹配:
logStartRegex->Match("========= Logging started (07/10/2011 @ 15:38:54) v1.000 AA000 =========\n");
我已经在regexpal中测试过了,它指示它有效(注意在C++版本中我们必须转义所有'\'字符):^=+ .* \((\d+)/(\d+)/(\d+) @ (\d+):(\d+):(\d+)\) (.*) =+
。有什么方法可以看到这个问题到底发生了什么?
你懂了;事实证明,我的一个测试字符串有些微不同,我没有发现它。当我削减我的例子在这里发布后,我选择了工作 - 德哦! :-) –