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



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

例如,我会收到类似的东西

C: \Users\OopsD\Projects\test.acdbd

我只想从这个字符串中提取

C: \用户\ OopsD\项目

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

\test.acdbd

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

C: \用户\ OopsD\项目

熟悉RegEx的人能在这件事上帮我吗?此外,我将在未来大量使用正则表达式。有没有一个(免费的)程序可以下载来创建正则表达式?

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

Dim file As New IO.FileInfo(" C:UsersOopsDProjectstest.acdbd")
MsgBox(file.Directory.FullName)

关于Regex上的免费程序,我肯定会推荐http://www.gskinner.com/RegExr/-一直使用它。但在走Regex的路之前,你总是必须考虑其他选择。

您要查找的正则表达式如下:

[^/]+$

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

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

+ (plus):重复上一项一次或多次。贪婪,在尝试与前一项匹配较少的排列之前,将匹配尽可能多的项,直到前一项只匹配一次。

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

许多Regex软件和工具都在那里。其中一些是:

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

最新更新