在Slim解析器的代码中,有以下正则表达式语句:
/\A(?:#{keys}|\*(?=[^\s]+)|(#{WORD_RE}(?:#{WORD_RE}|:|-)*#{WORD_RE}|#{WORD_RE}+))/
可以\S
代替[^\s]
吗?
该陈述会有不同的表现吗?
答案 0 :(得分:3)
稍微长一点的解释:\S
是元字符,被解释为/[^ \t\r\n\f]/
,而\s
是元字符,被解释为/[ \t\r\n\f]/
- > Documentation
因此对字符的解释完全相反,这意味着如果你反转其中一个,你将获得完全相同的匹配行为。
这意味着是的,您可以使用[^\s]
替换正则表达式中的\S
。
答案 1 :(得分:1)
\S
只是被\s
否定,所以与[^\s]
相同,没有区别。