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

Is it possible to extend the range of a regex meta character?

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

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

(不正确的表述请忽略,仅供参考)

或者我们是否锁定了元字符含义的最终确定性,如果我们想要 \w 来容纳更多字符,我们必须编写整个范围结构,即 [a-Z...更多字符]?

由于这是一个 yes/no 问题,我希望能举例说明这个问题对以后的帮助有任何用处。

谢谢。

您无法更改 \w 的覆盖范围,但可以在另一个 class 中使用它。

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

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

 /[\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]);
}

答案是肯定的,例如:

[\w$\€]

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

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