2010-11-19 63 views

回答

10

我認爲這是明智的模式:.*A.*B.*

我將修改並添加更多特定的Java調用。

編輯#1:

//simplest match 
"".matches(".*A.*B.*"); 

String foo = ""; 
foo.matches(".*A.*B.*"); 

編輯#2: 從API docs

Pattern p = Pattern.compile(".*A.*B.*"); 
Matcher m = p.matcher("your-string-here"); 
boolean b = m.matches(); 

另外,我想看看RegexBuddy,它不是免費的,但它確實有手段生成許多​​語言的片段,測試&解析正則表達式等。

+0

我覺得傻冒權 – grmartin 2010-11-19 22:19:56

+0

@ javamonkey79:唐。你不得不使用問號使它不貪婪嗎? – thejh 2010-11-19 22:21:19

+0

我不確定,我對SQL的解釋是「任何字符,然後是A,然後是任何字符,然後是B,然後是任何字符」。一個很好的解釋,我非常喜歡閱讀並且讚揚它:) – javamonkey79 2010-11-19 22:28:45

0

它是「。?A。?B。 「? 如果你使用沒有它整個字符串相匹配,因爲(點)的意思是 」任意字符「 *是指0 - 無限次

+0

我以爲'?'在Java中只匹配一次或根本不匹配。這不正確嗎? – javamonkey79 2010-11-19 22:30:40

+0

不起作用:http://ideone.com/lY8ya – thejh 2010-11-19 22:40:56

0
Pattern p = Pattern.compile(".*?A.*?B.*"); 
Matcher m = p.matcher(str); 
if (m.matches()) { 
... 
相關問題