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

时间:2010-01-27 07:58:46

标签: regex word pre

我有一条像这样的道路:

C:\ Development.TFS \ Examn \ R4-分支\网络\ OrganisationManager \主题\蓝色\ CSS

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

5 个答案:

答案 0 :(得分:6)

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

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

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

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

可能会做得更好。

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

答案 1 :(得分:1)

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

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

答案 2 :(得分:0)

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

答案 3 :(得分:0)

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

获取单词blue的PHP示例。

答案 4 :(得分:0)

另一种选择:

(\w+)\\\w+$