如何使用正则表达式获取前一个单词?

问题描述 投票:3回答:5

我有一条这样的路径:

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

而且我需要一个正则表达式才能使单词“ blue”掉在那里。我曾尝试过,但尚未找到解决方案。实际上是从该字符串的最后一个单词之前获取单词。请帮忙,谢谢

regex word
5个回答
6
投票
(\w+)\W+\w+$

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

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

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

可能做得更好。

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


1
投票

您难道不可以简单地使用字符'\'分割字符串,然后获取splitResult [splitResult.Count-1]吗?

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


0
投票

if(eregi('themes \\([a-z]。+)\\ css',$ subject)){#比赛成功}其他{#比赛尝试失败}

一个用蓝色表示单词的PHP示例。


0
投票

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


0
投票

另一个选项:

(\w+)\\\w+$
© www.soinside.com 2019 - 2024. All rights reserved.