如何通過Java中的正則表達式匹配包含空格的確切單詞?正則表達式與Java中的空格確切詞
例如,可以說我想捕獲「 - 郵件(原始)」我需要哪個正則表達式? 我試過.*[\-][\s]Mail[\s](Raw)
但它失敗了。
下面是一些樣本輸入和期望的輸出:
- 你好 - 郵件(RAW):真
- 你好 - 郵件(生):真
- 你好郵件這裏rawed:假
- 你好-mail(生):假
- - 郵件(RAW):假
- - 郵件(RAW):假
- - 郵件(RAW)打招呼:假
- - 郵件(原始)打招呼:假
如何通過Java中的正則表達式匹配包含空格的確切單詞?正則表達式與Java中的空格確切詞
例如,可以說我想捕獲「 - 郵件(原始)」我需要哪個正則表達式? 我試過.*[\-][\s]Mail[\s](Raw)
但它失敗了。
下面是一些樣本輸入和期望的輸出:
我想出了答案。正則表達式我一直在尋找的是:
.*\s-\s[Mm]ail\s\([Rr]aw\)
含義:
* \ S後跟空間
任何字符
-
\ S後跟空格,接着是連字符。
[mm]所有匹配郵件或郵件
\隨後空間S
\(接着開括號
[RR] AW 匹配原始或原料
\),隨後關閉括號
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/是我們的朋友
'('和' )'需要被轉義:'\(Raw \)',或者在一個字符串文字中:'「\\(Raw \\)」' –
所以你只需要匹配字符串' - Mail(Raw)',但是不區分大小寫? – CAustin
是的..但我真的很難逃避和空格。 –