与URL参数匹配的正则表达式
Regular expression matching URL parameters
给定以下两个字符串
?room=any_characters123&name=John
?room=any_characters123
我想使用正则表达式提取"any_characters123"。
我试过
(?<=room=)('w)+(?='&)
但是这个在第二个字符串上失败(因为匹配的字符串必须以"&"结尾)。
如何编辑正则表达式,使其与两个字符串中的任意字符123匹配?
由于javascript不支持lookbehinds,因此需要使用捕获组。
'?room=('w+)
示例:
> var s = "?room=any_characters123&name=John"
> var s1 = "?room=any_characters123"
undefined
> var re = /'?room=('w+)/;
undefined
> console.log(re.exec(s)[1])
any_characters123
undefined
> console.log(re.exec(s1)[1])
any_characters123
如果您使用的是JS,则不支持lookbacking。您可以按如下方式修改正则表达式:
room=([^&]+)
尝试将*
放在表达式的末尾:
room=('w+)'&*?
它将测试&
的零或正出现
这应该可以做到:
/room=('w+)&?/
/*
find "room=" then match any word characters (at least one) until you
possibly hit "&"
*/
示例:
/room=('w+)&?/.test("?room=any_characters123")
// => true
"?room=any_characters123".match(/room=('w+)&?/)
// => ["room=any_characters123", "any_characters123"]
运行字符串通过两个regex测试,一个是您已经拥有的,然后是这个:
(?<=room=)('w){1,}$
相关文章:
- 通过正则表达式从字符串中提取Url
- 用于确定URL视频ID的正则表达式
- url正则表达式不适用于javascript中的localhost
- JavaScript 中 URL 的正则表达式模式
- 什么'用这个正则表达式查找URL是错误的
- 修改以下正则表达式,使其在URL末尾包含斜杠
- javascript正则表达式url(url子字符串)
- url的正则表达式有问题
- 使用JavaScript正则表达式从html srcset获取图像url
- 与URL参数匹配的正则表达式
- 为什么正则表达式不能正确验证网站URL
- JavaScript正则表达式,带有URL激活以及微笑符号等
- 将背景图像URL与正则表达式匹配
- JavaScript 正则表达式以匹配 URL
- 通过 JavaScript 和正则表达式将图像 URL 替换为文本 URL
- 正则表达式 url 与本地主机匹配
- 需要进一步扩展此正则表达式 URL/邮件解析器
- javascript正则表达式url替换
- 不是图像扩展名的Javascript正则表达式url
- JS 正则表达式 url 验证