可以使用正则表达式从此URL实现此输出吗?

时间:2016-05-25 11:18:34

标签: javascript regex

我有这个网址

/home/5/test/1/user/[*]/[a,b,c/[*]/d,e/[*]/f/[1,2,3,4]/[g,h,i]]

我想要的输出是

/home/5/test/1/user/[*]/a
/home/5/test/1/user/[*]/b
/home/5/test/1/user/[*]/c/[*]/d
/home/5/test/1/user/[*]/c/[*]/e/[*]/f/[1,2,3,4]/g
/home/5/test/1/user/[*]/c/[*]/e/[*]/f/[1,2,3,4]/h
/home/5/test/1/user/[*]/c/[*]/e/[*]/f/[1,2,3,4]/i

/home是关键,/5是其值。像这样我们正在寻找配对。如果找不到一对,则网址会中断。因此/test的值为/1/user的值为/[*]。下一个斜杠有一个开括号,其中a是一个键,它没有值,因为后面没有斜杠,所以字符串断开并给我们第一个输出行。 b虽然没有值,但c的值为/[*],所以我们保留该值并转到下一个e和值/[*]然后我们将它添加到我们的字符串中,依此类推,直到我们结束。我们试图只保留好的密钥和配对值,而不是那些破坏的值。在我开始考虑如何做到这一点之前..我想知道它是否可以在正则表达式中完成?使用\[([\S\s]*)\]可以解决我在查找右括号中的问题,但是在正则表达式中是否可以有一个完整的解决方案?如果没有那么我怎么能实现这个目标?欣赏任何类型的回应。

1 个答案:

答案 0 :(得分:0)

如果我理解正确,那么你需要的正则表达式是:

/home/5/test/1/user/\d+/[abc]/\d+/[de]/\d+/f/[1-4]/[ghi]

虽然我的问题仍然让我感到困惑。例如,字符串:/home/5/test/1/user/2/a/3/d是否匹配?在上面的正则表达式中它会,但我不清楚你想要什么。