2010-08-10 76 views
3

有人可以解釋下面的正則表達式匹配什麼?

^.*$ 

謝謝!

+1

看起來好像在http://download-llnw.oracle.com/javase/1.5.0/docs/api/java/util/regex/Pattern.html中有詳細介紹。官方文件有什麼問題? – 2010-08-10 14:27:57

回答

0

它看起來像它匹配的一切...

+0

這不提供問題的答案。要批評或要求作者澄清,請在其帖子下方留言。 – Ankur 2012-11-15 07:26:54

+0

@Ankur:不同意。它直接*回答這個問題,儘管沒有多少解釋。嚴格來說,這也不完全正確,但這並不意味着它不是一個答案。 – Mac 2012-11-15 19:40:17

15

一切。

^ is the beginning of the string. 
. is any character. 
* means 0 or more of said characters. 
$ is the end of the string. 

所以這個正則表達式匹配0個或更多的字符開始和結束一個字符串(這是一切)。

+0

感謝您的解釋 – user73829 2010-08-10 14:24:10

+0

+1爲一個很好的簡單解釋 – 2010-08-10 14:26:40

+3

默認情況下,大多數正則表達式實現不會匹配DOT元字符的'\ r'和'\ n'。所以,不是「一切」。 – 2010-08-10 14:29:39

1

它會匹配任何東西。

^表示該行的開始。 $表示行結束。所以這意味着表達式必須匹配它傳遞的整個字符串。

.將匹配任何單個字符。 *意味着之前的東西可以出現在0到任意次數之間。所以這意味着字符串可以包含任意數量的字符,包括0.

2

它匹配所有空行和非空行。它可以被分解爲以下部分:

^ : 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 
1

^ =開始字符串或線的(取決於設置)。

. =任何字符。

* =上一個字符的任意數字。在這種情況下,.

$ =字符串或行結束(取決於設置)。

把它們放在一起,它可以匹配整個字符串或整行,具體取決於多行設置的內容(有關更多信息,請參閱this)。

0

它看起來像匹配包括空字符串在內的所有內容。 。*意味着它匹配所有(週期)0次或更多次(*)。 ^和$是多餘的,如果你已經設置了多線標誌(不知道它在java中是什麼)。