在slim解析器的代码中,有以下regex语句:
/\A(?:#{keys}|\*(?=[^\s]+)|(#{WORD_RE}(?:#{WORD_RE}|:|-)*#{WORD_RE}|#{WORD_RE}+))/
能否用
\S
代替[^\s]
?声明的表现会有什么不同吗?
最佳答案
正如稍长一点的解释:\S
是解释为/[^ \t\r\n\f]/
的元字符,而\s
是解释为/[ \t\r\n\f]/
>Documentation的元字符。
所以对字符的解释是完全相反的,这意味着如果你把两者中的一个颠倒过来,你将得到完全相同的匹配行为。
也就是说,可以用[^\s]
替换正则表达式中的\S
。