.*
和[.]*
之间的确切区别是什么?
我试图把它们放在括号内,用于反向引用,看到结果不一样,虽然我不明白为什么。
.
应匹配任何单个字符。
所以我猜它是否在方括号内是不应该对*
(匹配零或更多)运算符很重要。但它是。为什么呢?
答案 0 :(得分:7)
在.*
中,点是一个特殊字符,匹配任何字符但是换行符(如果指定DOTALL修饰符,它将匹配所有字符)。在字符类([.]
)中,点失去其特殊含义并开始匹配文字点。
这是所有正则表达式的普遍行为。
答案 1 :(得分:1)
.
匹配任何字符。\.
仅匹配文字"."
。[.]
相当于[\.]
或\.
这只是为了方便 - 因为您几乎肯定不希望它在角色的上下文中匹配“任何字符”基。奖金 - 如果你使用my ruby gem,你可以轻松地尝试这样的事情:
/./.examples # => ["a", "b", "c", "d", "e"]
/\./.examples # => ["."]
/[.]/.examples # => ["."]