正则字符按顺序出现

时间:2014-02-20 02:25:09

标签: javascript regex

正则表达式相对较新,我正在尝试找到按顺序查找字符的表达式:

例如: 给定字符串abc我想要一个表达式,它将匹配第一个a,第一个b在a之后,第一个c在b之后,等等。

即。给出“ abc

大c a t b uys香蕉, c arrots和鸡肉。

2 个答案:

答案 0 :(得分:1)

好吧,a.*?b.*?c可以胜任。

答案 1 :(得分:0)

我没有意识到正则表达式只能匹配连续的字符块。最后我在下面编写了自己的突出显示功能:

function r(str, search) {
            // assumes search.length > 0
            var searchChars = search.split('');
            var search = '';
            var replacement = '';
            for(var i=0, cnt=searchChars.length; i<cnt; i++) {
                            var c = searchChars[i];
                            search += c.replace(/([.?*+^$[\]\\(){}|-])/, "\\$1") + '(.*?)';
                            replacement += '<span class="highlight">' + c + '</span>$' + (1+i);
            }
            return str.replace(new RegExp(search, 'i'), replacement);
}