-1

代码如下所示:

alert(/symbol([.\n]+?)symbol/gi.test('symbolbbbbsymbol'));

或者

alert(/#([.\n]+?)#/gi.test('#bbbb#'));
4

2 回答 2

8

因为您正在寻找在<and中具有字符类的点>。删除字符类:

/<(.+?)>/

问题编辑后的澄清:

第一个代码块应该使用这种模式:/symbol(.+?)symbol/

第二个代码块应该使用这种模式:/#(.+?)#/

于 2013-03-10T16:40:41.357 回答
2

正则表达式返回 false,因为点在放置在字符类中时失去了匹配任何字符(但换行符)的特殊能力[]- 它只匹配简单的".".

要匹配和捕获在任一端由相同的单个字符分隔的子字符串,最有效的模式是

/#([^#]+)#/

要匹配和捕获在任一端由相同字符序列分隔的子字符串要使用的模式是

/symbol(.+?)symbol/

或者,如果您想跨换行符匹配

/symbol([\s\S]+?)symbol/

where[\s\S]匹配任何空格或非空格字符,它等同于任何字符。

包含使?模式匹配延迟,即确保匹配在第一次出现时结束"symbol"

于 2013-03-10T17:51:00.970 回答