Board logo

标题: [问题求助] 正则匹配url第一个反斜杠内容 [打印本页]

作者: 522235677    时间: 2017-10-16 20:45     标题: 正则匹配url第一个反斜杠内容

比如 https://agc.qq.com/show/chan

匹配出show结果
作者: zhanglei1371    时间: 2017-10-16 22:45

本帖最后由 zhanglei1371 于 2017-10-16 22:47 编辑

这个?
  1. http.*?//[^/]+/([^/]+)/.*$
复制代码

作者: yu2n    时间: 2017-10-18 09:03

  1. Option Explicit
  2. Test
  3. '************************************************************************
  4. Sub Test()
  5. '************************************************************************
  6.     Dim str, strPattern
  7.     str = "https://agc.qq.com/show/chan"
  8.     strPattern = "http[s]{0,1}:\/\/[0-9A-z\.]+?\/([^\/]+)?[\/]{0,1}?.*"
  9.     MsgBox GetRE_SM0(str, strPattern)
  10. End Sub
  11. '************************************************************************
  12. '正則表達式:取得字符串的第一個子匹配項目
  13. '************************************************************************
  14. Function GetRE_SM0(ByVal str, ByVal strPattern)
  15.     Dim oRE
  16.     Set oRE = CreateObject("vbScript.regExp")
  17.     oRE.Pattern = strPattern
  18.     If oRE.Test(str) Then
  19.         If oRE.Execute(str)(0).SubMatches.Count >= 1 Then
  20.             GetRE_SM0 = oRE.Execute(str)(0).SubMatches(0)
  21.         End If
  22.     End If
  23.     Set oRE = Nothing
  24. End Function
复制代码

作者: 523066680    时间: 2017-10-18 15:52

本帖最后由 523066680 于 2017-10-18 16:11 编辑

反斜杠不是 \ 吗
  1. echo https://agc.qq.com/show/chan|perl -e "print [split(/\/+/,<>)]->[2]"
复制代码
还是不要用切割了,匹配大概是这样吧:
  1. $s = 'https://agc.qq.com/show/chan';
  2. $s =~ /\/{2}.*?\/([^\/]+)/;
  3. print $1;
复制代码

作者: 回家路上    时间: 2017-10-20 15:54

  1. (?!/).*/([^/]+)/.*
复制代码
第一个捕获组捕获到的就是




欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2