0

文字列内の 3 つの部分文字列を見つけるための解決策を探しています。

私の文字列は次のようになります。

ジョン・スミス 電話. 555222333 メール。john@gmail.com

この文字列から電話番号、メール、名前を取得したいと思います。電子メールと電話番号を見つけるのは簡単ですが、名前と姓を取得する方法がわかりません。

編集。この文字列内の単語の順序は常に同じとは限りません。

4

3 に答える 3

0

入力文字列は、tel を中心に分割できます。とメール。例えば:

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

ここで \B は、文字列が mail.com で分割されないようにします。次に、以下の正規表現を試して名前を取得します。

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

これにより、少なくとも 1 つ以上の (+) 名前部分の存在が検索されます。ここで、名前の部分 (名、姓、またはミドル ネーム) は、大文字または小文字で始まり、大文字または小文字を含む場合があります。これがお役に立てば幸いです。

于 2013-01-13T02:02:25.930 に答える
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"
于 2013-01-18T17:11:11.137 に答える
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);
于 2013-01-13T00:19:32.330 に答える