是否可以扩展正则表达式元字符的范围?

时间:2015-04-02 10:28:34

标签: javascript regex metacharacters

我正在使用js(javascript)正则表达式文字表达式,但我想这个答案适用于某种形式的所有正则表达式。

我只是想知道是否可以这样做: / \ w + [更多字符] / g

(请忽略不正确的表达方式,仅供参考)

或者我们是否锁定了元字符意义的终结性,如果我们需要包含更多字符,我们必须编写整个范围构造,即[a-Z ...更多字符]?

由于这是一个是/否的问题,我希望能够将这个问题用于未来的帮助。

感谢。

3 个答案:

答案 0 :(得分:2)

您无法更改\w的覆盖范围,但可以在其他类中使用它。

例如,[\wéà][a-zA-Z0-9_éà]的快捷方式。

答案 1 :(得分:2)

您可以像这样创建自己的角色类:

 /[\wйцукенгшщз]+/g

你不仅可以捕捉'a','b'到'z',还可以捕捉西里尔字符''','''等。

示例(这里,最后一个'a'是拉丁语,其余是西里尔语):

var re = /[\wа-яА-ЯёЁ]+/; 
var str = 'Славa';
var m;
 
if ((m = re.exec(str)) !== null) {
    if (m.index === re.lastIndex) {
        re.lastIndex++;
    }
    alert(m[0]);
}

答案 2 :(得分:1)

答案是肯定的,例如:

[\w\$\€]

将匹配\ w + 2个额外字符$和€。这相当于:

[a-zA-Z0-9_\$\€]