2017-09-25 33 views
-3

如何通過Java中的正則表達式匹配包含空格的確切單詞?正則表達式與Java中的空格確切詞

例如,可以說我想捕獲「 - 郵件(原始)」我需要哪個正則表達式? 我試過.*[\-][\s]Mail[\s](Raw)但它失敗了。

下面是一些樣本輸入和期望的輸出:

  1. 你好 - 郵件(RAW):真
  2. 你好 - 郵件(生):真
  3. 你好郵件這裏rawed:假
  4. 你好-mail(生):假
  5. - 郵件(RAW):假
  6. - 郵件(RAW):假
  7. - 郵件(RAW)打招呼:假
  8. - 郵件(原始)打招呼:假
+1

'('和' )'需要被轉義:'\(Raw \)',或者在一個字符串文字中:'「\\(Raw \\)」' –

+1

所以你只需要匹配字符串' - Mail(Raw)',但是不區分大小寫? – CAustin

+0

是的..但我真的很難逃避和空格。 –

回答

0

我想出了答案。正則表達式我一直在尋找的是:

.*\s-\s[Mm]ail\s\([Rr]aw\) 

含義:

* \ S後跟空間

任何字符

-

\ S後跟空格,接着是連字符。

[mm]所有匹配郵件或郵件

\隨後空間S

\(接着開括號

[RR] AW 匹配原始或原料

\),隨後關閉括號

0
String str = "Hello - Mail (Raw)"; 
Pattern pattern = Pattern.compile("\\w+\\s+-\\s+(?<recepient>[Mm]ail\\s+\\([Rr]aw\\))"); 
Matcher matcher = pattern.matcher(str); 

if (matcher.matches()) { 
    String recepient = matcher.group("recepient"); 
} 

附:https://regex101.com/是我們的朋友