Javascript正则表达式捕获

时间:2014-04-25 00:37:21

标签: javascript regex

我需要抓住这个:<!.This is a string.!>
它可以包含<!. .!>

中的任何内容

所以我尝试了这个:<\!\..+\.\!>/g

哪个不起作用。我一直试图解决这个问题几天没有成功。我想捕获整个字符串,包括<!. .!>

感谢您的帮助!

2 个答案:

答案 0 :(得分:2)

修改 由于OP编辑了他的帖子以指明他不想捕获字符串而且还要分隔符,我已经将捕获括号从<!\.(.*?)\.!>移出到(<!\..*?\.!>)

这应该这样做:

var myregexp = /(<!\..*?\.!>)/m;
var match = myregexp.exec(subject);
if (match != null) {
    result = match[1];
} else {
    result = "";
}

由于JS不支持lookbehinds,因此想法是匹配整个字符串,包括分隔符,但只捕获&#34; My String&#34;进入第1组。然后我们检查第1组。

答案 1 :(得分:-1)

对于那些擅长Regex&#34;的人来说,这个人并不聪明。

var subject = "<!.This is a string.!>";
subject = subject.match(/<!\.(.*?)\.!>/);
console.log(subject[1]);

http://jsfiddle.net/tuga/YzLnN/1/