我不知道可以匹配以下示例的正则表达式:
我需要捕获/之间的每个变量。
示例:/ abc / efg / xxx应该返回:
注释:
答案 0 :(得分:1)
我没有找到一种比您所说的更干净的方法来完全解决您的问题:
^\/(?:(\w+)(?:\/(\w+)(?:\/(\w+))?)?)?((?<!\/)\/)?$
您可以在这里查看:https://regex101.com/r/FJuJ43/6
说明:
starts with a /: ^\/
rest of unstored group is optional: (?: … )?
may ends with a / unless there is another one just before: ((?<!\/)\/)?$
in the main group, first stored alphanum only subgroup: (\w+)
followed by another optional unstored subgroup, starting with a / and followed by another alphanum only stored subgroup: (?:\/(\w+) … )?
and ditto: (?:\/(\w+))?
这有效,创建了三个组。
但是我不能阻止最后一个字符为结尾/
/ aaa / bbb / ccc /也可以正常工作。如果可以忍受,那应该没事。
希望这会有所帮助。