【发布时间】:2020-11-11 20:54:58
【问题描述】:
需要解析如下字符串:
-
object/custom/name1/name2
-
object/custom/name1/name2/typea
object/custom/name1/name2/typea/item
我期望得到的结果是:group1: name1/name2group2: typeagroup3: item
只需要group1(具有名称的组)。其他组 (2,3) 是可选的。这取决于字符串。例如。对于第一个字符串应该只出现在字符串name1/name2的第一组。
字符串typea是静态字符串。
这里是游乐场的链接:https://regex101.com/r/j1ay1s/1/
或正则表达式:object\/(custom|standard)\/(.*)(?:\/(typea|typeb))(?:\/(.*))?
【问题讨论】:
-
如果结构稳定,您可以只使用
const [o, c, n1, n2, t, i] = s.split('/');(t和i如果它们不存在,它们将是未定义的。) -
name2 可以不存在。在这种情况下,group1 应该只包含 name1 参数。
标签: javascript regex