我有类似的东西:
[@parameter='value']
和
[@parameter]
我需要正则表达式来解析这两种情况,首先在第二个参数中返回参数和值
现在,我有类似的东西
"[@short-name='shorty']".match(/\[\@(.*)\=\'(.*)\'\]/)
返回
["[@short-name='shorty']", "short-name", "shorty"]
它很棒,但仅在第一种情况下,请帮助
编辑:
我只是想可能两个匹配可以被一个替换,所以如果可能的话,对当前解决方案进行一点扩展将会很棒。
匹配类似的东西:
PARENT//CHILD[@parameter='value']
或者
PARENT//CHILD[@parameter]
或者
PARENT//CHILD
应该返回
[ parent, child, parameter, value ]
[ parent, child, parameter ]
[ parent, child ]
非常感谢!
编辑2:
好吧这很容易
/([A-Z]+)\/\/([A-Z]+)(\[@([^=\]]*)(?:='(.*)'])?)?/
如果可以更容易地做到这一点,请告诉我如何