是否使用方括号表示regexp点
是否使用方括号表示regexp点,regex,Regex,*和[.]*之间的确切区别是什么 我试着把这些放在括号里,作为后面的参考,结果是不一样的,尽管我不明白为什么 应该匹配任何单个字符 所以我猜它是否在方括号内,对于*(匹配零或更多)运算符不应该很重要。但事实确实如此。为什么?在*中,点是一种特殊字符,它与除换行符以外的任何字符相匹配(如果指定了点所有修饰符,它将与所有字符相匹配)。在字符类([.])中,点失去其特殊含义,并开始匹配文字点 它是所有正则表达式口味的通用行为。 匹配除换行符以外的任何字符 \。仅匹配文本“ [.]相当于[\.]或\.这
*
和[.]*
之间的确切区别是什么
我试着把这些放在括号里,作为后面的参考,结果是不一样的,尽管我不明白为什么
应该匹配任何单个字符
所以我猜它是否在方括号内,对于
*
(匹配零或更多)运算符不应该很重要。但事实确实如此。为什么?在*
中,点是一种特殊字符,它与除换行符以外的任何字符相匹配(如果指定了点所有修饰符,它将与所有字符相匹配)。在字符类([.]
)中,点失去其特殊含义,并开始匹配文字点
它是所有正则表达式口味的通用行为。
匹配除换行符以外的任何字符
仅匹配文本\。
“
相当于[.]
或[\.]
这只是为了方便起见-因为您几乎肯定不希望它与字符组上下文中的“任何字符”匹配\.
/./.examples # => ["a", "b", "c", "d", "e"]
/\./.examples # => ["."]
/[.]/.examples # => ["."]
将RE插入将解释发生了什么。那么如何指定:任意(
)字符数或空格(\s
)字符数?e、 g.1([.\s]*)2
捕获多行正则表达式中1和2之间的组?@user14492匹配1
和2
之间的任何0个或更多点或空格。如果要匹配1
和2
之间的任何文本,需要参考并使用(?s)1(.*)2
/(?s)1(.*)2
或1([\w\w]*)2
/1([\w\w]*)2
。可能还有其他选项,比如JavaScript中的1([^]*)2
/1([^]*)2
;这是我脑海中的一个例子。我还想知道任意数量的following all(
)和特定字符(\t
)的正确形式是什么。因为当你把点(
)放在一个拾取组(方括号)中时,例如,[.\t]+
,它的意思不一样吗?因为目前我必须用[\t.]+=[\ta-zA-Z0-9]
替换方括号中的所有点?@user14492匹配任何字符+特定字符=匹配任何字符。不适用于像\n\r\t\s这样的空白字符?