在java中获取字符串的一部分

时间:2015-05-26 19:02:33

标签: java regex string token

我有一个字符串,其中包含4个属性,它们之间有3个空格(姓名,姓氏,电子邮件,电话)。例如:

"Mike   Tyson   mike@hotmail.com   0 999 999 99 99"

我需要从这个字符串中接收电子邮件。我搜索了正则表达式和令牌,但找不到任何东西。谢谢。

6 个答案:

答案 0 :(得分:4)

  1. split您的字符串使用3个空格来获取令牌数组
  2. 获取您感兴趣的令牌(此处将其编入索引为rcorr(x, y)$n[1,2]

答案 1 :(得分:2)

您可以使用以下内容并提取第1组:

^[^\\s]+\\s+[^\\s]+\\s+([^\\s]+)

代码:

String str = "Mike   Tyson   mike@hotmail.com   0 999 999 99 99";
Matcher matcher = Pattern.compile("^[^\\s]+\\s+[^\\s]+\\s+([^\\s]+)").matcher(str);

while (matcher.find()) {
   System.out.println(matcher.group(1));
}

答案 2 :(得分:1)

使用以下代码段 -

import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class ExtractMail{

    public static void main(String[] args){

        String str = "Mike   Tyson   mike@hotmail.com   0 999 999 99 99";
        Matcher matcher = Pattern.compile("[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\\.[a-zA-Z0-9-.]+").matcher(str);

        while (matcher.find()) {
           System.out.println(matcher.group());
        }

    }

}

答案 3 :(得分:1)

String string = "Mike   Tyson   mike@hotmail.com   0 999 999 99 99";
System.out.println(string.split("   ")[2]); // your email

很简单。使用方法split获取String数组并调用所需的元素进行索引。

答案 4 :(得分:1)

一个班轮......

String s = "Mike   Tyson   mike@hotmail.com   0 999 999 99 99";
String email = s.trim().split(" ")[2];

答案 5 :(得分:1)

根据OP的要求,这是一个带有Regex的版本:

public static void test()
{
    String str = "Mike   Tyson   mike@hotmail.com   0 999 999 99 99";
    Matcher matcher = Pattern.compile("[^ ]*@[^ ]*").matcher(str);

    while (matcher.find()) {
       System.out.println(matcher.group(0));
    }
}

[^ ]*@[^ ]*匹配@字符周围的任何字符(空格除外)。