有一些我需要分解单个单词的文本文件。但是对单词的定义非常宽松。
\b
似乎正确识别边界,但由于它是零宽度 ^\b 不做任何事情。
我知道 .NET string.parse 可能更快,但我也需要匹配位置。
我最终得到的结果如下所示。当我想打破非零时 ^ 。添加了希望忽略中断的日期、电子邮件和 URL。
我知道该解决方案与我最初的问题陈述不是很接近。它进化了。谢谢大家的帮助。
String line;
pattern = @"\w+@\w+|[01]?\d\/[0123]?\d\/([12]\d)?\d\d|https?:\/\/(?:\w+\.){1,3}\w+|[^\s\.\\///?!()@,]{2,200}";
while ((line = sr.ReadLine()) != null)
{
Debug.WriteLine(line);
foreach (Match match in Regex.Matches(line, pattern, RegexOptions.IgnoreCase))
{
Debug.WriteLine(match.Index.ToString() + " " + match.Value);
}
break;
}