2012-03-14 74 views
3

我是一個正則表達式的新手。下面是我能想到的模式:在Java中找到句號,感嘆號或問號的正則表達式

Pattern pattern = Pattern.compile("[.!?]");

因爲documentation[abc] a, b, or c (simple class)。但是我錯了。 :-(

+1

嗯,你錯過了一個感嘆號,並添加斜槓,兩件事情。 – 2012-03-14 12:48:47

+0

哎呀.... - - |值得downvote: - | – 2012-03-14 12:49:41

+0

你可以發佈一個例子,這不起作用嗎?你如何使用你的模式?用匹配器? – 2012-03-14 12:50:01

回答

7

這個工作對我來說:?

import java.io.IOException; 
import java.util.regex.Matcher; 
import java.util.regex.Pattern; 

public class Main { 

    public static void main(String[] args) throws IOException { 
     Pattern pattern = Pattern.compile("[.!?]"); 
     Matcher m = pattern.matcher("Hello?World!..."); 
     while (m.find()) { 
      System.err.println(m.group()); 
     } 
    } 

} 

那麼,什麼是你的問題更精確地

+0

我想那麼我的代碼有一些其他問題。我應該發佈嗎?但它不再與這個問題有關。 – 2012-03-14 13:01:15

+2

是的,然後提出另一個問題,並提出一些代碼。最好的解決辦法就像我在這個問題上做的一樣,放置一個SSCCE(http://sscce.org)。它消除了所有含糊不清的情況,有時通過編寫它,你會發現你的原始錯誤 – 2012-03-14 13:03:17