2014-04-22 88 views
1

我用的,我使用PHP腳本基於的preg_match「正則表達式」。正則表達式是^[\w.-][email protected][\w.-]+\.[A-Za-z]{2,6}$創造條件,以驗證電子郵件地址

我怎樣才能在條件測試的電子郵件地址爲基本結構的慶典納入本?我的電子郵件地址位於名爲「電子郵件」的文件中。 (根據需要循環播放)。像if [cat email | '/^[\w.-][email protected][\w.-]+\.[A-Za-z]{2,6}$/' ]; then { 或什麼的。我不知道如何寫這個。任何人都可以幫助...

+0

你說的 'bash的條件' 是什麼意思?請澄清謝謝, – jomsk1e

+0

有條件,如果[TRUE];然後{別的東西。有條件的代替TRUE。 – user3386373

回答

1

使用正則表達式和適應它bash以測試變量email保持的地址:

#!/bin/bash 
if [[ $email =~ ^[[:alnum:]_.-][email protected][[:alnum:]_.-]+\.[[:alpha:]]{2,6}$ ]] 
then 
    echo "Good address" 
else 
    echo "Bad address" 
fi 

注:

  • 此使用[[...]]結構所以普通的POSIX shell不會這樣做:需要bash或更高版本。

  • =~運營商字符串匹配,在這種情況下,電子郵件地址,爲POSIX擴展正則表達式。

  • 實際的規範電子郵件地址,(看看RFC5322),是非常複雜的(見本樣本,但過時的regex)與您正則表達式只是一個近似值。

+0

謝謝。如果我使用你的代碼,我會如何向其添加下劃線,如你所建議的那樣?或者它已經存在了? – user3386373

+0

它是註釋2中的+〜或=〜嗎? – user3386373

+0

@ user3386373感謝捕捉+'〜'錯字:我只是固定它。此外,下劃線已添加。我正在留下加號,百分號和其他字符。 – John1024