Javascript正则表达式提取特定单词后的引号之间的所有字符

时间:2014-07-23 02:51:48

标签: javascript regex string match

我有文字:

s.events="event3"
s.pageName="Forum: Index"
s.channel="forum"
s.prop1="Forum: Index"
s.prop2="Index Page"
s.prop36=""
s.prop37=""
s.prop38=""
s.prop39=""
s.prop40="53"
s.prop41="Anonymous"
s.prop42="username"
s.prop43=""
s.prop47=""
s.eVar1="Forum: Index"
s.eVar2="Index Page"
s.eVar36=""
s.eVar37=""

保存在javascript的var中,我想在s.prop42的引号之间提取文本,给我结果:

"username"

我现在拥有的是

    var regex = /\?prop.42="([^']+)"/;
    var test = data.match(regex);

但它似乎没有用,有人可以帮助我吗?

2 个答案:

答案 0 :(得分:2)

使用此:

var myregex = /s\.prop42="([^"]*)"/;
var matchArray = myregex.exec(yourString);
if (matchArray != null) {
    thematch = matchArray[1];
} 

the regex demo中,查看右侧窗格中的捕获组

<强>解释

  • s\.prop42="匹配s.prop42="(但我们无法检索)
  • ([^"]*)中的括号捕获任何不属于{1}的字符组到第1组:这就是我们想要的
  • 代码获取第1组捕获

答案 1 :(得分:0)

无法对上述答案发表评论,但我认为正则表达式更好用。*就像这样:

var myregex = /s\.prop42="(.*)"/;
var matchArray = myregex.exec(yourString);
if (matchArray != null) {
    thematch = matchArray[1];
}