正则表达式:从字符到行尾匹配,没有最后一个匹配组
Regex: Match from character to end of line without the last match group
我想从一些网址中提取q
参数:
.com/?gws_rd=ssl#q=test
.com/search?q=something+else&source=123
这是我想出的一个正则表达式:q=(.*?)(&|$)
.当&
终止时,结果为:
["q=test", "test", "&"]
否则,当它到达行尾时:
["q=test", "test", ""]
这有效,但似乎不对。
有没有办法完全不包括最后一个比赛组,因为我对它不感兴趣?
将最后一组变成积极的前瞻性断言。
(?=&|$)
断言匹配后必须跟有&
或行尾锚点$
q=(.*?)(?=&|$)
演示
> ".com/?gws_rd=ssl#q=test".match(/q=(.*?)(?=&|$)/)
[ 'q=test',
'test',
index: 17,
input: '.com/?gws_rd=ssl#q=test' ]
仅打印捕获组中的字符。
> var s = ".com/?gws_rd=ssl#q=test"
undefined
> console.log(/q=(.*?)(?=&|$)/.exec(s)[1]);
test
相关文章:
- Javascript:删除冒号的最后一个字符
- 如何在单击时从输入字段中删除最后一个字符
- 为什么jQuery正在删除文本的最后一个字符
- Javascript 切掉最后一个字符,如果有 2 个
- 使用JavaScript替换字符串的最后一个字符
- 打印regex之后的最后一个字符
- 字符串替换最后一个字符出现的斜杠
- 如何删除字符串的第一个和最后一个字符
- 如何使用jquery获取最后一个字符
- 使用dojo按键事件时无法避免最后一个字符输入
- Jquery:如何关注DIV的最后一个字符
- 查找字符串中类型的最后一个字符
- 打印出字符串中所有单词的最后一个字符
- 替换字符串的最后一个字符
- 删除元素文本中的最后一个字符
- 使用 Javascript 或 jQuery 删除最后一个字符
- JQuery 或 Javascript 代码,用于更改 html 文本中最后一个字符的字体
- 获取忽略空格的 JavaScript 字符串中的最后一个字符
- range.toString()截断javascript按键事件中的最后一个字符
- JS/JQuery-如果空格是第一个和/或最后一个字符,则从输入字段中删除空格