3

我有这样一条路径:

C:\Development.TFS\Examn\R4-branch\Web\OrganisationManager\themes\blue\css

我需要一个正则表达式来消除“蓝色”这个词。我试过了,但还没有找到解决办法。它实际上是从该字符串中获取最后一个单词之前的单词。请帮忙,谢谢

4

5 回答 5

6
(\w+)\W+\w+$

匹配倒数第二个单词,将其捕获到反向引用号中。1,然后匹配一个或多个非单词字符,然后是最后一个单词,然后是 EOL。

如果您真的不想要实际的单词而是匹配路径元素(即使它们包含非单词字符),那么

([^\\:]+)\\[^\\]+$

可能会做得更好。

编辑::在“倒数第二个单词组”中添加了 a ,因此正则表达式也可以处理相对路径。

于 2010-01-27T08:05:05.180 回答
1

你不能简单地使用字符'\'分割字符串然后得到splitResult [splitResult.Count-1]?

您始终可以用环境中的路径分隔符替换“\”,以获得更一致的结果

于 2010-01-27T08:19:48.937 回答
0

您应该在 string: 中找到此模式([\w\s.-]+)\\[\w\s.-]+$。在您的情况下,第一组将包含单词“蓝色”。正则表达式和访问组的确切语法取决于您的编程语言。

于 2010-01-27T08:04:10.580 回答
0

if (eregi('themes\\([az].+)\\css', $subject)) { # 匹配成功 } else { # 匹配尝试失败 }

一个 PHP 示例来获取蓝色这个词。

于 2010-01-27T08:16:17.637 回答
0

另外一个选项:

(\w+)\\\w+$
于 2010-01-27T08:26:10.763 回答