0

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

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

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

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

C:\Users\OopsD\Projects

我试图创建一个正则表达式来匹配一个反斜杠后跟一个单词,然后是一个点,然后是另一个单词 - 这是为了匹配

\test.acdbd

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

C:\Users\OopsD\Projects

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

4

2 回答 2

0

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

[^/]+$

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

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

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

可以在链接中找到更多参考。

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

  1. www.gskinner.com/RegExr/
  2. www.txt2re.com
  3. Rubular - 它不仅适用于 Ruby。
于 2013-02-10T10:46:57.723 回答
0

你真的确定你需要使用正则表达式来完成简单的任务吗?这个怎么样:

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

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

于 2013-02-10T14:01:36.983 回答