Javascript正则表达式,帮助我匹配

时间:2012-03-23 15:55:47

标签: javascript regex match

伙计们请帮帮我吧。我不知道如何使用正则表达式,我读了很多关于此的内容,但无论如何,我不明白它是如何工作的。

这是我的问题: 我有这样的代码:

var str = "<strong>What do you think</strong> if we could just buy this <strong>Robot</strong>"; 
str = str.match(/[<strong>][a-z\s]+[<\/strong>]/gi);

代码完成后,我会得到这样的结果:&gt;你怎么看&lt;,&gt; Robot&lt;

但我等了这个:你怎么看,机器人。

怎么了?它让我发疯。

更新:感谢大家!现在,找到了解决方案

3 个答案:

答案 0 :(得分:1)

试试这个正则表达式[更新]

(<strong>(.*?)</strong>)*

答案 1 :(得分:0)

这是它在大多数(现代)正则表达方言中的表现

.*?(?<=<strong>)(.*?)(?=</strong>).*?|.*

替换为

$1

不幸的是,Javascript不支持lookbehind。如果你准备好了,你可以阅读http://blog.stevenlevithan.com/archives/mimic-lookbehind-javascript并试一试。 Pity js不支持这种强大的技术

答案 2 :(得分:0)

如果你不想对RegExp.exec()大惊小怪,请使用:

var matches = str.match(/<strong>.*?<\/strong>/gi);
var result = [];
for (var i = 0; i < matches.length; ++i)
    result.push(matches[i].match(/<strong>(.*)<\/strong>/i)[1]);