我面临一个问题,即我得到了一个包含文件路径和文件名的字符串,而我只想提取路径(没有文件名)
例如,我会收到类似的东西
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软件和工具都在那里。其中一些是:
- www.gskinner.com/RegExr/
- www.txt2re.com
- Rubular-它不仅仅适用于Ruby