正则表达式相对较新,我正在尝试找到按顺序查找字符的表达式:
例如: 给定字符串abc我想要一个表达式,它将匹配第一个a,第一个b在a之后,第一个c在b之后,等等。
即。给出“ abc ”
大c a t b uys香蕉, c arrots和鸡肉。
答案 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);
}