因此,假设我有一个搜索结果,返回如下:
\\my.test.site@SSL\JohnDoe\SusanSmith\courses\PDFs\Science_Math\BIOL\S12014 Syllabi\BIOL-1322-S12014-John-Doe.pdf每当结果列在文本框中时,我就得到整个路径,而不仅仅是文件。由于我不能在枚举目录时使用.Select(Path.GetFileName),所以这是按照设计的方式工作的,以免它没有完整的路径来进行搜索。
所以,当结果显示时,我打算使用Regex在末尾做一个替换,但是当我去Rubular时,它不喜欢我的表达式或测试字符串(找不出哪个)。
我基本上想减少除了文件名和扩展名以外的所有东西。
所以我的Regex应该是:
\\my.test.site@SSL\JohnDoe\SusanSmith\courses\PDFs\.+\.+\.+\这样,我就可以将所有内容都删除到文件名和扩展名。然而,Rubular不喜欢某些东西,因为我得到了一个“太短的控制转义”错误。我不想在没有在Rubular中验证的情况下在C#中测试它,因为我大量使用它,并计算如果它在那里不能工作,它在运行时就不能工作。
有什么想法吗?谢谢。
发布于 2014-07-01 19:49:08
请记住转义\字符以及文字.字符:
\\\\my\.test\.site@SSL\\JohnDoe\\SusanSmith\\courses\\PDFs\\.+\\.+\\.+\\还请注意,您可能希望通过使用非贪婪的量词来避免.+上的过度匹配:
\\\\my\.test\.site@SSL\\JohnDoe\\SusanSmith\\courses\\PDFs\\.+?\\.+?\\.+?\\或者使用字符类:
\\\\my\.test\.site@SSL\\JohnDoe\\SusanSmith\\courses\\PDFs\\[^\\]+\\[^\\]+\\[^\\]+\\发布于 2014-07-01 21:42:12
也许我误解了这个问题,但听起来你的方法太复杂了。
你就不能简单地匹配一下:.+\\
然后用''代替(没有)?
https://stackoverflow.com/questions/24518162
复制相似问题