正则表达式提取路径中的单词

Posted

技术标签:

【中文标题】正则表达式提取路径中的单词【英文标题】:regex extract word in path 【发布时间】:2014-06-30 08:13:19 【问题描述】:

我需要一个正则表达式来获取路径中的单词 例子: (更新)

/var/log/rsyslog/apache/test1/2014/05/file1.log
/var/log/rsyslog/apache/test2/2014/05/file2.log
/var/log/rsyslog/apache/test3/2014/05/file3.log

输出应该是

test1
test2
test3

感谢您的帮助

【问题讨论】:

您使用哪种语言? (?<=/)[^/]*?(?=[.]\w+$) 你是在 Linux 上做的吗? 感谢 Sam 的回答,但这不是我想要接收的字符串 【参考方案1】:

我不确定您使用的是哪种语言,一般来说,此正则表达式有效:

/\/(.*?)\.log/

正则表达式解释

/(.*?)\.log

Match the character “/” literally «/»
Match the regular expression below and capture its match into backreference number 1 «(.*?)»
   Match any single character that is not a line break character «.*?»
      Between zero and unlimited times, as few times as possible, expanding as needed (lazy) «*?»
Match the character “.” literally «\.»
Match the characters “log” literally «log»

【讨论】:

以上是关于正则表达式提取路径中的单词的主要内容,如果未能解决你的问题,请参考以下文章

如何使用JavaScript正则表达式提取字符串中的最后一个单词?

正则表达式 - 尝试从字符串中提取 5 位单词(presto)

JavaScript 正则表达式 - 从单词旁边提取数字

正确使用正则表达式提取单词

如何使用正则表达式,将字符串中的每个单词首字母大写

WUB 中的正则表达式提取字符