這應該返回true,而是返回false。Java的正則表達式無法找到匹配
"ADC".matches("A.*?C")
我已經測試了一個javascript正則表達式測試儀:http://regexpal.com/
和它的作品,爲什麼沒有在Java中工作?
編輯: 同樣的,這樣的:
System.out.println("DEAGHHF".matches("(A.*?C|C.*?A|D.*?C|C.*?D|A.*?F|F.*?A)"));
返回false,regexpal真(aswhile其他JavaScript的正則表達式引擎)。
對不起,對於小廣告(我只用自己的工具,我不爲他們工作),但你可以嘗試regexpal提到「使用RegexBuddy」,它允許軟件你甚至可以導出一個函數在Java中使用。 – 2011-05-07 19:50:19
你確定你已經向我們展示了正確的表達和輸入嗎?該表達式與我在regexpal.com上的輸入匹配,並且當我運行'「ADC」.matches(「A。*?C」)'時。 – 2011-05-07 19:54:50
A.?C|C.?A|D.?C|C.?D|A.?F|F.?A的正則表達式表示,該字符串應該是長度爲2或3串爲什麼要DEAGHHF比賽你有比這更長的路,所以你只能得到部分匹配。 – Kaj 2011-05-07 20:05:50