我有这样一条路径:
C:\Development.TFS\Examn\R4-branch\Web\OrganisationManager\themes\blue\css
我需要一个正则表达式来消除“蓝色”这个词。我试过了,但还没有找到解决办法。它实际上是从该字符串中获取最后一个单词之前的单词。请帮忙,谢谢
(\w+)\W+\w+$
匹配倒数第二个单词,将其捕获到反向引用号中。1,然后匹配一个或多个非单词字符,然后是最后一个单词,然后是 EOL。
如果您真的不想要实际的单词而是匹配路径元素(即使它们包含非单词字符),那么
([^\\:]+)\\[^\\]+$
可能会做得更好。
编辑::
在“倒数第二个单词组”中添加了 a ,因此正则表达式也可以处理相对路径。
你不能简单地使用字符'\'分割字符串然后得到splitResult [splitResult.Count-1]?
您始终可以用环境中的路径分隔符替换“\”,以获得更一致的结果
您应该在 string: 中找到此模式([\w\s.-]+)\\[\w\s.-]+$
。在您的情况下,第一组将包含单词“蓝色”。正则表达式和访问组的确切语法取决于您的编程语言。
if (eregi('themes\\([az].+)\\css', $subject)) { # 匹配成功 } else { # 匹配尝试失败 }
一个 PHP 示例来获取蓝色这个词。
另外一个选项:
(\w+)\\\w+$