我想找到s=
之后和&
之前或字符串结尾之后发生的任何事情。例如,如果字符串是
T = QWERTY&安培; S =&你好放大器; P = 3
我想得到hello
。如果字符串是
T = QWERTY&安培; S =你好
我也希望获得hello
谢谢!
答案 0 :(得分:5)
\bs=([^&]+)
抓住$1
应该足够好,不是吗?
编辑:添加单词锚!否则它也会匹配herpies
,dongles
...
答案 1 :(得分:1)
为什么不尝试一下一般旨在解析查询字符串的内容?这样,你可以假设你在重新发明轮子时不会遇到明显的下一个障碍。
jQuery具有查询对象(请参阅JavaScript query string)
或者你可以谷歌一点:
function getQuerystring(key, default_)
{
if (default_==null) default_="";
key = key.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");
var regex = new RegExp("[\\?&]"+key+"=([^&#]*)");
var qs = regex.exec(window.location.href);
if(qs == null)
return default_;
else
return qs[1];
}
看起来很有用;例如
http://www.bloggingdeveloper.com?author=bloggingdeveloper
你想得到"作者"查询字符串的值:
var author_value = getQuerystring('author');
答案 2 :(得分:1)
最简单的方法是使用选择器s=([^&]*)&
。括号内部有[^&]
,以防止hello&p=3
之后有另一个字段抓取p
。
答案 3 :(得分:0)
您还可以根据提供的here解决方案使用以下表达式,该表达式查找两个给定字符串之间的所有字符:
(?<=s=)(.*)(?=&)
根据您的情况,您可能需要稍加修改,以解决“字符串结尾”选项的问题(有几种方法可以做到这一点,尤其是当您可以使用简单的代码操作(例如手动添加{{1} }字符添加到字符串的末尾,然后再运行正则表达式。