2012-02-06 37 views
0

好了,所以我現在有:正則表達式得到的所有文字從#到報價

/(#([\"]))/g;

我希望能夠檢查像一個字符串:

#23ad23"

請告訴我錯我的正則表達式?

+0

這是你的問題的全部?如果是這樣,正則表達式可能是沒有必要的。但我確實知道,在某些情況下,如果問題進一步擴大,情況可能更好。 – 2012-02-06 13:10:13

+1

當你要求正則表達式的情況下,通常包括一些測試用例,你期望什麼以及你得到什麼是一個好習慣。 – npinti 2012-02-06 13:13:13

+0

對這個問題進行嚴重的措辭表示歉意。 – Anicho 2012-02-06 13:17:55

回答

2

您正則表達式(/(#([\"]))/g)打破了這樣的:

沒有開始/結束分隔符/旗幟和捕獲括號..

#[\"] 

這只是意味着#,其次是",但方括號爲類是不必要的,因爲只有一個項目,所以相當於...

#" 

我想你想要t o匹配#"(含)之間的所有字符(並專門捕獲)。

像這樣的正則表達式

開始:

#.+?" 

這意味着#其次是任何東西(.)一次或多次(+)非貪婪(?),其次是"

所以與捕獲括號和分度符...

/(#(.+?)")/g 
+0

感謝你的分解很好。 – Anicho 2012-02-06 13:54:23

1

這是你的意思?

/(#([^\"]+))/g; 

這將包括一切,直到它到達"字符。

+0

+1,因爲你懂我的意思! – Anicho 2012-02-06 13:54:35

1

對於最小匹配cou NT(更大的長度相匹配):#(.+)\"

對於最大匹配計數(較小的長度相匹配):#(.+?)\"