\s和\t之间有什么区别?

10
他们似乎都能工作,但我被告知在形成RegExp时应该同时使用两个?

1
我认为这是一个通用的正则表达式问题。也许可以去掉JavaScript、HTML标签并更改标题。 - ddavison
\s表示空格,\t表示制表符 - Shushant
1
这里只是对大多数答案进行一些严谨的调整:[\s\t] 是多余的。\t 已经包含在 \s 中,因此您不必包括 \t。在 \s\t 的情况下,\t 不是多余的。它正在寻找一个空格,后面跟着一个制表符。因此,如果您正在处理字符类,请小心。 - Shaz
4个回答

18

\s 匹配任何空白字符,包括制表符。 \t 只匹配制表符。

由于 \t\s 的子集,因此您不必同时使用两者。


3
我不会把\t称为\s的一个子集,更多地是作为其"元素"。 - arshajii
2
一个元素的子集? - Pandu
1
此答案已添加到 Stack Overflow 正则表达式 FAQ,位于“转义序列”下。 - aliteralmind

13

3

\t 是一个字面上的制表符,而 \s 是一个预定义的字符类\s 匹配任何空白字符,而 \t 仅匹配制表符(这也被 \s 匹配)。

这类似于询问 \d0 之间的区别。 0 是一个字面上的 0,而 \d 是任何数字。


0

\s 包含所有的空白字符。例如,在 Java 中,\s[\t\n\x0b\r\f]\t 只是一个单独的制表符,所以您不需要同时使用两者。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接