在Java中使用空格的精确单词的正则表达式

时间:2017-09-25 21:27:11

标签: java regex pattern-matching

如何通过Java中的Regex匹配包含空格的确切单词?

例如,我想说我想捕获“ - 邮件(Raw)”我需要哪个正则表达式? 我试过了.*[\-][\s]Mail[\s](Raw),但它失败了。

以下是一些输入和预期输出示例:

  1. Hello - Mail(Raw):true
  2. 您好 - 邮件(raw):true
  3. 你好邮件来源:false
  4. Hello -mail(raw):false
  5. - 邮件(原始):false
  6. - 邮件(原始):false
  7. - Mail(Raw)说你好:假
  8. - 邮件(原始)说嗨:假

2 个答案:

答案 0 :(得分: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");
}

P.S。 https://regex101.com/是我们的朋友

答案 1 :(得分:0)

我想出了答案。我正在寻找的正则表达式是:

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

意义:

。*任何字符

\ s后跟空格

- 后跟连字符

\ s后跟空格

[Mm]匹配邮件或邮件

\ s后跟空格

\(后面是开括号

[RR] AW    匹配原始或原始

\)紧接着大括号