我正在从字符串中提取一段字符串(链接):
https://arteptweb-vh.akamaihd.net/i/am/ptweb/100000/100000/100095-000-A_0_VO-STE%5BANG%5D_AMM-PTWEB_XQ.1V7rLEYkPH.smil/master.m3u8
所需的输出应为100000/100000/100095-000-A_
我正在使用正则表达式 ^.*?(/[i,na,fm,d]([,/]?)(/am/ptweb/|.+=.+,))([ ^_]*).*?$
在 Golang 风格中,我只能得到第 4 组,输出如下 100000/100000/100095-000-A
但是我想要 A 之后的下划线。
有点卡住了,非常感谢任何帮助。
最佳答案
你可以使用
(/(i|na|fm|d)(/am/ptweb/|.+=.+,))([^_]*_?)
请参阅regex demo .
详细信息:
(/(i|na|fm|d)(/am/ptweb/|.+=.+,))
- 第 1 组:/
- 一个/
字符(i|na|fm|d)
- 第 2 组:i
、na
、fm
或d
(/am/ptweb/|.+=.+,)
- 第 3 组:/amp/ptweb/
或尽可能多的一个或多个字符 (换行符除外)、=
、尽可能多的一个或多个字符(换行符除外)以及一个,
字符
([^_]*_?)
- 第 4 组:除_
之外的零个或多个字符,然后是可选的_
。
关于regex - golang正则表达式获取包含搜索字符的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72489981/