这些正则表达之间有什么区别

yas*_*sar 0 regex

鉴于此输入:

ESAS NO     :2005-238
Run Code Online (Sandbox Code Playgroud)

这两个正则表达式不匹配:

esas\s+(no)?\s*:([^\w]+)
esas\s+(no)?\s*:([\W]+)
Run Code Online (Sandbox Code Playgroud)

但是这个符合:

esas\s+(no)?\s*:([^a-zA-Z]+)
Run Code Online (Sandbox Code Playgroud)

我认为以上所有都会/应该表现得一样,但事实并非如此.那些有什么区别?

Kus*_*nda 6

\w匹配任何字母数字字符,包括数字,即它[A-Za-z0-9_]与/和/但可能取决于区域设置大致相同.