我有一个像这样的字符串:匹配多个值
str = 'autocomplete=\\\"off\\\" name=\\\"composer_session_id\\\" value=\\\"1557423901\\\" \\\/>\\u003cinput type=\\\"hidden\\\" autocomplete=\\\"off\\\" name=\\\"is_explicit_place\\\" id=\\\"u436754_5\\\"';
和正则表达式匹配:
str.match(/(composer_session_id|is_explicit_place)\\" (?:value|id)=\\"([_a-zA-Z0-9]+)\\"/g)
它的工作(有点'),但尽管事实上,我使用的是捕获群体得到(composer_session_id|is_explicit_place)
和([_a-zA-Z0-9]+)
结果数组只包含两个元素(最大匹配字符串):
["composer_session_id\" value=\"1557423901\"", "is_explicit_place\" id=\"u436754_5\""]
我在这里错过了什么?
如何在一次运行中使用regexp获取字符串:composer_session_id,is_explicit_place,1557423901和u436754_5?
加分要解释为什么只有两个字符串返回和解决方案获取值我需要的不涉及使用split()
和/或replace()
。
你知道你可以嵌套捕获组? –
是的,我知道 - 这对我有帮助吗? – WTK
你可以给未经转义的原始字符串和正则表达式吗? – pastacool