如何使用正则表达式(VB.NET)提取文件位置

时间:2013-02-10 10:41:35

标签: regex vb.net pattern-matching

我遇到一个问题,我得到一个包含文件路径和文件名的字符串,我只想提取路径(没有文件名)

例如,我会收到类似

的内容
  

C:\用户\ OopsD \项目\ test.acdbd

从该字符串中我只想提取

  

C:\用户\ OopsD \项目

我试图创建一个RegEx以匹配反斜杠后跟一个单词,后跟一个点后跟另一个单词 - 这是为了匹配

  

\ test.acdbd

part并将其替换为空字符串,以便最终结果为

  

C:\用户\ OopsD \项目

任何熟悉RegEx的人都可以帮我解决这个问题吗?此外,我将来会使用正则表达式。我可以下载一个(免费)程序来创建正则表达式吗?

2 个答案:

答案 0 :(得分:0)

您正在寻找的正则表达式如下:

[^/]+$

其中, ^ (caret):匹配应用正则表达式模式的字符串的开头。匹配位置而不是角色。大多数正则表达式都有一个选项,可以在换行后(即文件中一行的开头)使插入符号匹配。

$ (dollar):匹配正则表达式模式的字符串末尾匹配。匹配位置而不是角色。大多数正则表达式都有一个选项,可以在换行符之前(即在文件中的一行末尾)使美元匹配。如果字符串以换行符结束,也会在最后一个换行符之前匹配。

+ (plus):重复上一个项目一次或多次。贪婪,因此在尝试使用前一项的较少匹配的排列之前将匹配尽可能多的项目,直到前一项仅匹配一次为止。

可以在this链接找到更多参考资料。

许多正则表达式软件和工具都在那里。其中一些是:

  1. www.gskinner.com/RegExr/
  2. www.txt2re.com
  3. Rubular - 这不仅仅适用于Ruby。

答案 1 :(得分:0)

你真的确定你需要使用Regex来完成简单的任务吗?怎么样:

Dim file As New IO.FileInfo(" C:\Users\OopsD\Projects\test.acdbd")
MsgBox(file.Directory.FullName)

关于Regex的免费程序,我肯定会推荐http://www.gskinner.com/RegExr/ - 一直使用它。但在采用正则表达方式之前,你总是需要考虑替代方案。