匹配某些字符之间的所有内

时间:2014-05-22 14:44:55

标签: javascript regex

哇,我吮吸正则表达式

http://regex101.com/r/lM8oX3

([*][.]+[*])

我试图匹配这样的文字:

*hello*

2 个答案:

答案 0 :(得分:4)

试试以下正则表达式:

(\*[^*]+\*)

在你的正则表达式中你有[.]实际上搜索点,因为在[]中它失去了它的特殊上下文并被视为普通字符。您最好使用.+,但它也会匹配*个字符。那么请使用我上面的解决方案。

Live demo

答案 1 :(得分:1)

这将捕获

var text = "asdfasdf *hello*";
console.log( text.match(/([*][^*]+[*])/)[1]);

但这只能抓住第一场比赛;

如果你想要所有的比赛

var text = "asdfasdf *hello* asdffdsa  *asdf*";
var matches = text.match(/([*][^*]+[*])/g);

if(matches.length > 1) {
   for(var i=1; i<matches.length; i++) {
       console.log(matches[i]);
   }
}