在string中查找指定的表达式

时间:2013-01-13 00:17:01

标签: java android regex algorithm

我正在寻找一种在字符串中找到三个子字符串的解决方案。

我的字符串如下:

  约翰史密斯电话。 555222333邮件。 john@gmail.com

我想从这个字符串中获取电话号码,电子邮件和姓名。要查找电子邮件和电话号码是微不足道的,但我不知道如何获得姓名。

修改。 此字符串中的单词顺序并不总是相同。

3 个答案:

答案 0 :(得分:0)

电话之前的话。可以被视为姓氏和之前的所有名称。 类似的东西:

String names = myString.substring(0, myString.indexOf("tel."));
String name = names.subString(0, names.indexOf(" "));
String surname = names.subString(names.indexOf(" "), names.size()-1);

答案 1 :(得分:0)

输入字符串可以在tel周围拆分。和邮件。例如:

String("John Smith tel. 555222333 mail. john@gmail.com").split("mail\\.\\B");   

在这里,\ B确保不会在mail.com上拆分字符串。然后尝试下面的正则表达式获取名称:

[[[A-Za-z]+][\\s+]]+

这将搜索至少一个或多个(+)名称部分的存在。 这里,名称部分(即第一个,最后一个或中间名)可以以包含大写或小写字符开头并包含大写或小写字符。希望这对你有所帮助。

答案 2 :(得分:0)

1. Retrieve telephone number. Remove it and string 'tel.' from the original string.

2. Retrieve email. Remove it and string 'mail.' from the original string.

3. Trim the remaining and you get the name.

这是解决方案。但为了风格的一致性,最好放一个字符串'name'。在名字之前。喜欢这个

"name. John Smith tel. 555222333 mail. john@gmail.com"