有人可以解释下面的正则表达式匹配什么?
^.*$
谢谢!
有人可以解释下面的正则表达式匹配什么?
^.*$
谢谢!
要么整个字符串或整行,这取决于是否multiline mode被使用。
一切。
^ is the beginning of the string.
. is any character.
* means 0 or more of said characters.
$ is the end of the string.
所以这个正则表达式匹配0个或更多的字符开始和结束一个字符串(这是一切)。
感谢您的解释 – user73829 2010-08-10 14:24:10
+1为一个很好的简单解释 – 2010-08-10 14:26:40
默认情况下,大多数正则表达式实现不会匹配DOT元字符的'\ r'和'\ n'。所以,不是“一切”。 – 2010-08-10 14:29:39
它会匹配任何东西。
^
表示该行的开始。 $
表示行结束。所以这意味着表达式必须匹配它传递的整个字符串。
.
将匹配任何单个字符。 *
意味着之前的东西可以出现在0到任意次数之间。所以这意味着字符串可以包含任意数量的字符,包括0.
它匹配所有空行和非空行。它可以被分解为以下部分:
^ : match the beginning of the line
. : match any character except newline
* : match zero or many instances of the match
$ : match the ending of the line
^
=开始字符串或线的(取决于设置)。
.
=任何字符。
*
=上一个字符的任意数字。在这种情况下,.
。
$
=字符串或行结束(取决于设置)。
把它们放在一起,它可以匹配整个字符串或整行,具体取决于多行设置的内容(有关更多信息,请参阅this)。
它看起来像匹配包括空字符串在内的所有内容。 。*意味着它匹配所有(周期)0次或更多次(*)。 ^和$是多余的,如果你已经设置了多线标志(不知道它在java中是什么)。
看起来好像在http://download-llnw.oracle.com/javase/1.5.0/docs/api/java/util/regex/Pattern.html中有详细介绍。官方文件有什么问题? – 2010-08-10 14:27:57