2012-11-27 81 views
0
I have a string like this "87 CAMBRIDGE PARK DR".I have used the below regular expression 
to remove the last word "DR", but it also removing the word "PARK" also.. 

下面是我的代碼...用正則表達式去除字符串中的最後一個單詞?

String regex = "[ ](?:dr|vi|tes)\\b\\.?"; /*regular expression format*/ 

String inputString ="87 CAMBRIDGE PARK DR"; /*input string */ 

Pattern pattern = Pattern.compile(regex, Pattern.CASE_INSENSITIVE); 
      Matcher matcher = pattern.matcher(inputString); 
      inputString = matcher.replaceAll("");  

Now the out put is "87 CAMBRIDGE".. 

但我需要出去放爲 「87劍橋公園」

回答

0

就可以實現它如下:

String inputString ="87 CAMBRIDGE PARK DR"; /*input string */ 
System.out.println(inputString.replaceFirst("\\s+\\w+$", "")); 

定期表達理解

\s+ : one or more white space characters 

\w+ : one or more alpha-numerics 

$ : the end of the input 

另一種方式是如下:

String inputString ="87 CAMBRIDGE PARK DR"; /*input string */ 
inputString = inputString.substring(0, inputString.lastIndexOf(" ")) + ""; 
+0

感謝您rply ... – Rahul

+0

歡迎您:) –

+0

您可以通過點擊右標記接受我的答案,如果它真的幫助你......和或能給予好評的答案。 –

2

嘗試下面REGEX:

  String inputString ="87 CAMBRIDGE PARK DR"; 
     System.out.println(inputString.replaceAll("\\w+$", "")); 

輸出: 87 CAMBRIDGE PARK

打破上述正則表達式:

"\\w+$" 

- check if該行的結尾後面跟着幾個單詞字符。

此外,如果您確定您的最後一個單詞只會是大寫(塊)字母。

System.out.println(inputString.replaceAll("[A-Z]+$", "")); 
相關問題