正则表达式:如何在不带下划线的情况下表示 \w

2022-08-30 11:42:28

有没有一种简洁的表达方式:

\w but without _

即“\w 中包含的所有字符,_除外”

我之所以问这个问题,是因为我正在寻找最简洁的方式来表达域名验证。域名可以包含小写和大写字母、数字、句点符号和短划线,但不能包含下划线。\w 包括上述所有内容,外加一个下划线。那么,有没有办法通过正则表达式语法从\w中“删除”下划线?

编辑:我问的是PHP中使用的正则表达式。

提前致谢!


答案 1

以下字符类(在 Perl 中)

[^\W_]

\W与 相同[^\w]


答案 2

你可以使用一个负面的展望(?!_)\w

但是,我认为写作更具可读性。[a-zA-Z0-9.-]


推荐