我是PHP的新手,我正在尝试适应php正则表达式
来自w3schools这个正则表达式"/([\w\-]+\@[\w\-]+\.[\w\-]+)/"
代表电子邮件正则表达式,但我想知道这个类定义对"[\w\-]"
,\w
的任何单词字符意味着什么,但是"\-"
呢?
(编辑)的
答案 0 :(得分:4)
\-
呢?连字符在正则表达式中大多是正常字符。
您可以将连字符作为类的第一个或最后一个字符而不进行转义。
[-\w]
,[\w-]
)在一些正则表达式实现中,您也可以直接放在一个范围之后而不进行转义。
[y-z-abc]
,[\w-abc]
short-hand class)简单地将连字符转义为该类的最后一个字符就好了。
[\w\-] # any character of: word characters (a-z, A-Z, 0-9, _),
# match a literal hyphen `\-'
答案 1 :(得分:3)
[\w\-]
表示字母(大写和小写字母)和数字,包括 - (下划线)
您可以查看正则表达式解释here
[\w\-]+
匹配下面列表中的单个字符量词:在一次和无限次之间,尽可能多次,根据需要回馈[贪心]
\ w 匹配任何单词字符[a-zA-Z0-9 _]
\-
匹配字符 - 字面意思
答案 2 :(得分:1)
所有[\w\-]
均值匹配且字符\w
与任意匹配 - \-
它与[\w-]
答案 3 :(得分:0)
\w
匹配任何字字符加_
,下划线,即大写和小写字母,数字0到9和下划线。
\-
与正常破折号相匹配。
因此[\w\-]
会在电子邮件别名中允许数字,字母,下划线和短划线。
(应该注意\.
允许点,@
之前的正则表达式不包括.
,但{{1}}允许{{1}}电子邮件别名)