2012-03-14 410 views
0

過去5年來,我收到了一個包含我所有電子郵件活動的大文件。 我想讓我的所有句子都有問號。 我用正則表達式不好,我只是知道一些可以做的事情。正則表達式得到以問號結尾的句子

有人可以給我一個正則表達式嗎? (JAVA)

如果有可能的話,我想回大膽的在下面的例子:

Lorem存有悲坐阿梅德,consectetur adipiscing ELIT。 Sed amet elementum。 Integer nec diam erat,eu consectetur nibh? Cum sociis natoque penatibus et magnis dis parturient montes。

回答

4

試試這個代碼:

String str = "Lorem ipsum dolor sit amet, consectetur adipiscing elit." 
      + "My second question? Sed amet elementum." 
      + "Integer nec diam erat, eu consectetur nibh?" 
      + "Cum sociis natoque penatibus et magnis dis parturient montes."; 
    Pattern pattern = Pattern.compile("([^.?!]*)\\?"); 
    Matcher matcher = pattern.matcher(str); 
    while(matcher.find()) 
    { 
     System.out.println(matcher.group()); 
    } 

它輸出:

My second question? 
Integer nec diam erat, eu consectetur nibh? 

這裏我定義句子.!?結束,但你可以輕鬆地擴展該列表。

+0

很感謝, ^是什麼? 和\\? – clankill3r 2012-03-14 10:07:50

+0

^表示您將匹配除了之後列出的所有字符。您使用\\來逃避?,這意味着您真的對字符問號感興趣(否則?表示前面的項目是可選的)。 – 2012-03-14 10:12:56

0

你可以使用類似的表達式:[^.!?]+\?

這將至少匹配您的例子所需的文本。