伙计们请帮帮我吧。我不知道如何使用正则表达式,我读了很多关于此的内容,但无论如何,我不明白它是如何工作的。
这是我的问题: 我有这样的代码:
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;
但我等了这个:你怎么看,机器人。
怎么了?它让我发疯。
更新:感谢大家!现在,找到了解决方案
答案 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]);