0 javascript regex pattern-matching
这是代码:
> var reg = new RegExp(" hel.lo ", 'g');
>
> var str = " helalo helblo helclo heldlo ";
>
> var mat = str.match(reg);
>
> alert(mat);
Run Code Online (Sandbox Code Playgroud)
它警告"helalo,helclo",但我希望它是"helalo,helblo,helclo,heldlo".只有他们中的一半匹配,我猜这是因为只计算一次的空间.所以我尝试在处理之前将每个空间加倍,但在某些情况下,这还不够.我正在寻找解释和解决方案.
谢谢
"?helalo?helblo?helclo?heldlo?"
// 11111111------22222222-------
Run Code Online (Sandbox Code Playgroud)
当?helalo?匹配时,左边的字符串helblo?... 没有前导空格.但是正则表达式需要一个领先的空间,所以它会跳过去?helclo?.
为避免表达占用空间,请使用前瞻.
var reg = / hel.lo(?= )/g
Run Code Online (Sandbox Code Playgroud)
(或\b用作单词边界.)