我正在使用正则表达式语法来从for splitlash(bu)中取出字符串中的第3个值。
/globalTracking/shipment/bu/number
我尝试了各种组合,但在某些特定情况下我仍然没有得到任何价值。允许的值是字符串和短划线。 因为我尝试了这种语法:
\/(?!\w+\/)(?!\w+\/)(?:\/[a-zA-Z\-]+\/)
仅适用于" bu"包含破折号。例如测试府。但是对于纯粹的字符串,例如" test"它找不到它。
请告诉您正确的语法?
非常感谢,Reddy
答案 0 :(得分:3)
尝试使用正则表达式:
(/+(.*?)){3}/
以下是在python中实现的代码:
x = '/globalTracking/shipment/bu/number'
re.search('(/+(.*?)){3}/',x).group(2)
输出
'bu'
答案 1 :(得分:1)
您可以在此处使用capturng组:
^
请参阅regex demo
<强>详情
/
- 字符串的开头(?:[^/]+/){2}
- 斜线[^/]+
- 一个量化的非捕获组,匹配两次重复
/
- /
([^/]+)
- 斜线/
- 捕获第1组:{{1}}以外的一个或多个字符