我正在尝试从URL路径中提取数据,如下所示:
/ 12345678901234567890123456789012/1230345035 /维布勒/摆动/
使用此正则表达式,我可以使用此正则表达式提取为3组:
\/([^\/]*)\/([^\/]*)(\/wibble\/wobble)
这给了我:
group 1 = 12345678901234567890123456789012
group 2 = /1230345035
group 3 = /wibble/wobble
然而,这并不是我所需要的 - 我试图让第2组中提取的数据也在第3组中,所以像这样:
group 1 = 12345678901234567890123456789012
group 2 = /1230345035
group 3 = /1230345035/wibble/wobble
但我担心我正在努力使用正则表达式来提取这样的数据。
谢谢
答案 0 :(得分:1)
首先,你提供的正则表达式不应该给你起始路径分隔符。因为您没有捕获分隔符,所以您应该看到如下内容:
group 1 = 12345678901234567890123456789012
group 2 = 1230345035
group 3 = wibble/wobble
将最后三个元素组合到您所谓的group 2
中更容易一些,然后使用复合捕获组将最后三个元素的第一部分捕获到group 3
,如下所示:
\/([^\/]*)\/(([^\/]*)\/wibble\/wobble)
\/ # opening slash
([^\/]*) # anything that is not a slash, repeated 0+ times, as group 1
\/ # separating slash
( # begin group 2
([^\/]*) # anything that is not a slash, repeated 0+ times, as group 3
\/wibble\/wobble # literal text to match
) # end group 2
这应该给你以下匹配:
group 1 = 12345678901234567890123456789012
group 2 = 1230345035/wibble/wobble
group 3 = 1230345035