2012-02-24 14 views
-4

私はRs.18000のための新しい携帯電話を持って、私の新しい携帯電話番号は9097123456で、私の固定電話番号は040から2で、私の電子メールIDが[email protected]あるこの文字列から電話番号と電子メールIDだけを抽出する方法は?

のような多くのSMSを持っている -

ここで、msg文字列全体から電話番号と電子メールIDだけを取り出し、別の文字列変数に格納したいとします。これを行う方法?

答えて

2

regular expressionsを使用してください。電話番号、電子メールなどに一致する式を提供する豊富なリソースがあります。

+0

ちょっとおおまかなコードで説明できますか? – xyzandroid

+2

@xyzandroid:コードを尋ねるのではなく、何かを試してみてください。 – home

+0

確かに。 http://www.ke-cai.net/2010/02/extract-email-address-from-text-using.html – Bostone

0

あなたの最善の策は正規表現です。チュートリアルhereをご覧ください。

基本的には、SMSコンテンツを処理するためにグループを使用する必要があります。 SMSメッセージが正規表現によって解析されたら、グループにアクセスしてヒットを抽出できます。

たとえば、hereのような正規表現を使用すると、メールIDを抽出できます。 (\d{3}-\d{6})のようなものは、任意の3つの数字と一致し、続いてダッシュが続き、その後に6つの数字が続きます。丸括弧は正規表現グループを表します。

0

正規表現を見てください。

はここを参照してください:あなたは、PHPとregexpressionsで、文字列から電話番号や電子メールを抽出するためのいくつかのメソッドを与えられているhttp://komunitasweb.com/2009/03/10-practical-php-regular-expression-recipes/

$email = "[email protected]"; 
if (preg_match('/^[^0-9][a-zA-Z0-9_]+([.][a-zA-Z0-9_]+)*[@][a-zA-Z0-9_]+([.][a-zA-Z0-9_]+)*[.][a-zA-Z]{2,4}$/',$email)) { 
    echo "Your email is ok."; 
} else { 
    echo "Wrong email address format"; 
} 

私はそれが保存される場所を示すために、++ $でwhileループでメールアドレスを引き出すためにそれを変更し、配列に格納することができます。電話番号は

$phone = "(021)423-2323"; 
if (preg_match('/\(?\d{3}\)?[-\s.]?\d{3}[-\s.]\d{4}/x', $phone)) { 
    echo "Your phone number is ok."; 
} else { 
    echo "Wrong phone number."; 
} 
+1

これはJavaについてです... – home

+0

ああ、申し訳ありません。それは注意を払っていない、ここ2時15分です。 – ionFish

0

これは正規表現を使用する必要があります。

各作業を行い、それぞれのRedExで電子メールと地上回線番号を確認してください。

ALGO

for each word in SMS 
    if email-RegEx matches word 
     save email 
    else if landLineNumber-RegEx matches word 
     save landLineNumber 
    end if 
end for 

return email,landLineNumber 
0

あなたはここのように、この目的の正規表現を使用することができ、電子メール

^にマッチする正規表現です[_ A-ZA-Z0-9 - ] +(\ [_ A-。 (A-Za-z0-9)+(A-Za-z0-9)+) [A-Za-z0-9] +(A-Za-z0-9)+ })$

この正規表現の説明

次のリンクにアクセスしてください Regular Expression

関連する問題