我已经尝试了几种选择,但没有什么能给我全部的话。
这给了我部分的话,
`@"(?<![.])\w+"`
我正在解析c#代码,因此字符串"Regex.Match(" ", " ")"
应返回Regex但不匹配。
我最终只使用了\w+
并进行了此项检查,
if ((match.Index > 0) && ('.' == text[match.Index - 1]))
continue;
哪种方法很好,但是如果有一个正则表达式也可以这么做就很好奇。
答案 0 :(得分:5)
你也可以尝试:(?<![.])\b\w+\b
答案 1 :(得分:1)
尝试使用零宽度负向后观断言
(?<!(\.\w*))\w+
它的作用是只选择仅由字长组成的字符串,其长度至少为一个字符,前面没有前面带有点字符的0个或更多字符的字符串
更多关于.NET @ msdn
中这个以及其他更棘手的正则表达式