首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >控制逃逸太短了。怎么才能找到Regex呢?

控制逃逸太短了。怎么才能找到Regex呢?
EN

Stack Overflow用户
提问于 2014-07-01 19:48:01
回答 2查看 255关注 0票数 0

因此,假设我有一个搜索结果,返回如下:

代码语言:javascript
复制
\\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应该是:

代码语言:javascript
复制
\\my.test.site@SSL\JohnDoe\SusanSmith\courses\PDFs\.+\.+\.+\

这样,我就可以将所有内容都删除到文件名和扩展名。然而,Rubular不喜欢某些东西,因为我得到了一个“太短的控制转义”错误。我不想在没有在Rubular中验证的情况下在C#中测试它,因为我大量使用它,并计算如果它在那里不能工作,它在运行时就不能工作。

有什么想法吗?谢谢。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-07-01 19:49:08

请记住转义\字符以及文字.字符:

代码语言:javascript
复制
\\\\my\.test\.site@SSL\\JohnDoe\\SusanSmith\\courses\\PDFs\\.+\\.+\\.+\\

还请注意,您可能希望通过使用非贪婪的量词来避免.+上的过度匹配:

代码语言:javascript
复制
\\\\my\.test\.site@SSL\\JohnDoe\\SusanSmith\\courses\\PDFs\\.+?\\.+?\\.+?\\

或者使用字符类:

代码语言:javascript
复制
\\\\my\.test\.site@SSL\\JohnDoe\\SusanSmith\\courses\\PDFs\\[^\\]+\\[^\\]+\\[^\\]+\\
票数 1
EN

Stack Overflow用户

发布于 2014-07-01 21:42:12

也许我误解了这个问题,但听起来你的方法太复杂了。

你就不能简单地匹配一下:.+\\

然后用''代替(没有)?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24518162

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档