2

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

我只是想知道是否可以这样做:/\w+[more characters]/g

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

或者我们是否锁定了元字符含义的最终确定性,如果我们用什么 \w 来保存更多字符,我们必须编写整个范围构造,即 [aZ...更多字符]?

由于这是一个是/否的问题,因此我希望通过示例使这个问题对未来的帮助有用。

谢谢。

4

3 回答 3

2

You cannot change the coverage of \w, but you can use it within another class.

For example, [\wéà] is a shortcut for [a-zA-Z0-9_éà].

于 2015-04-02T10:32:32.760 回答
2

You can create your own character class like this:

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

And you will be able to catch not just 'a', 'b' through 'z', but also Cyrillic characters 'й', 'ц', etc.

Example (here, the last 'a' is Latin, the rest is Cyrillic):

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

于 2015-04-02T10:32:40.310 回答
1

答案是肯定的,例如:

[\w\$\€]

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

[a-zA-Z0-9_\$\€]
于 2015-04-02T10:42:41.743 回答