python獲取字符串中的email
調(diào)用re庫(kù),通過使用compile、findall獲取字符串中的email
import re email=re.compile(r'[a-z0-9\-\.]+@[0-9a-z\-\.]+') emailtest=r'adfasldfjdsl fan02@163.com' emailset=set() for em in email.findall(emailtest): ? ? emailset.add(em) for em1 in sorted(emailset): ? ? print(em1)
修改:
通過調(diào)用函數(shù),并動(dòng)態(tài)地為字符串賦值
import re def emailre(teststr): ? ? email=re.compile(r'[a-z0-9\-\.]+@[0-9a-z\-\.]+') ? ? emailset=set() ?#列表 ? ? for em in email.findall(teststr): ? ? ? ? emailset.add(em) ? ? for eml in sorted(emailset): ? ? ? ? print(eml) emailtest='sdfdsgf asd03@162.com' emailre(emailtest) #或 strtest=r'sdgfsg abc@163.com' emailre(strtest)
運(yùn)行結(jié)果:
補(bǔ)充:
從指定的字符串中提取Email:
? /** ? ?* 從指定的字符串中提取Email ? ?* content 指定的字符串 ? ?*/ ? public static String parse(String content) { ? String email = null; ? if (content==null || content.length()<1) { ?return email; ? } ?//找出含有@ ?int beginPos; ?int i; String token = "@"; String preHalf=""; ?String sufHalf = ""; beginPos = content.indexOf(token); ?if (beginPos>-1) { ?//前項(xiàng)掃描 ?String s = null; ? i= beginPos; ?while(i>0) { s = content.substring(i-1,i); ?if (isLetter(s)) ? ? preHalf = s+preHalf; ? else ? ? break; ? i--; ? } ?//后項(xiàng)掃描 ? i= beginPos+1; ? while( i<content.length()) { ? ?s = content.substring(i,i+1); ? ?if (isLetter(s)) ? ? sufHalf = ?sufHalf +s; ? ?else ? ? break; ? ? i++; ? ? ?} ? //判斷合法性 ? email = preHalf + "@" + sufHalf; ? ?if (isEmail(email)) { ? ?return email; ?} ? } return null; } ?/** ?* 判斷是不是合法Email * email Email地址 */ public static boolean isEmail(String email) { ?try { ? ?if (email==null || email.length()<1 || email.length()>256) { ? ?return false; ?} ? ? String check = "^([0-9a-zA-Z]+[_.0-9a-zA-Z-]+)@([a-zA-Z0-9-]+[.])+([a-zA-Z]{2,3})$"; ?Pattern regex = Pattern.compile(check); ?Matcher matcher = regex.matcher(email); ? boolean isMatched = matcher.matches(); ?if(isMatched) { ? ?return true; ?} else { ? return false; ?} ?} catch (RuntimeException e) { ?return false; ? }? ?} ? ?/** ? * 判斷是不是合法字符 ?* c 要判斷的字符 ?*/ public static boolean isLetter(String c) { ?boolean result = false; ?if (c==null || c.length()<0) { ? return false; ?} ?//a-z? ?if (c.compareToIgnoreCase("a")>=0 && c.compareToIgnoreCase("z")<=0) { ? return true; ?} ?//0-9 ?if (c.compareToIgnoreCase("0")>=0 && c.compareToIgnoreCase("9")<=0) { ?return true; ?} ?//. - _ ?if (c.equals(".") || c.equals("-") || c.equals("_") ) { ?return true; } ?return result;? ?}
到此這篇關(guān)于python獲取字符串中的email的文章就介紹到這了,更多相關(guān)獲取字符串中的email內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
使用Django框架中ORM系統(tǒng)實(shí)現(xiàn)對(duì)數(shù)據(jù)庫(kù)數(shù)據(jù)增刪改查
這篇文章主要介紹了使用Django的ORM實(shí)現(xiàn)對(duì)數(shù)據(jù)庫(kù)數(shù)據(jù)增刪改查方法,文中附含詳細(xì)示例代碼以及過程詳解,有需要的朋友可以借鑒參考下2021-09-09利用Python實(shí)現(xiàn)自動(dòng)生成小學(xué)生計(jì)算題
過年期間發(fā)現(xiàn)小外甥已經(jīng)上小學(xué)了,我姐說老師今天給他們布置了寒假作業(yè):每天堅(jiān)持做乘法和加減法混合運(yùn)算。這我必須幫幫忙,用Python寫了一段自動(dòng)生成小學(xué)生計(jì)算題的代碼,希望外甥不要太感謝我2023-02-02Python爬蟲入門有哪些基礎(chǔ)知識(shí)點(diǎn)
在本篇文章中小編給大家整理的是關(guān)于Python爬蟲入門基礎(chǔ)知識(shí)點(diǎn)整理,有興趣的朋友們可以跟著學(xué)習(xí)下。2020-06-06詳解python3實(shí)現(xiàn)的web端json通信協(xié)議
本篇文章主要介紹了python3實(shí)現(xiàn)的web端json通信協(xié)議,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下。2016-12-12Python十類常見異常類型總結(jié)(附捕獲及異常處理方式)
在編寫程序時(shí)難免會(huì)遇到錯(cuò)誤,有的是編寫人員疏忽造成的語(yǔ)法錯(cuò)誤,有的是程序內(nèi)部隱含邏輯問題造成的數(shù)據(jù)錯(cuò)誤等等,這篇文章主要給大家介紹了關(guān)于Python十類常見異常類型總結(jié)的相關(guān)資料,文中還附捕獲及異常處理方式,需要的朋友可以參考下2023-06-06python各類經(jīng)緯度轉(zhuǎn)換的實(shí)例代碼
這篇文章主要介紹了python各類經(jīng)緯度轉(zhuǎn)換的實(shí)例代碼,非常不錯(cuò),具有一定的參考借鑒價(jià)值,具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-08-08Python3實(shí)現(xiàn)Web網(wǎng)頁(yè)圖片下載
這篇文章主要介紹了Python3通過request.urlopen實(shí)現(xiàn)Web網(wǎng)頁(yè)圖片下載,感興趣的小伙伴們可以參考一下2016-01-01python3實(shí)現(xiàn)用turtle模塊畫一棵隨機(jī)櫻花樹
今天小編就為大家分享一篇python3實(shí)現(xiàn)用turtle模塊畫一棵隨機(jī)櫻花樹,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來(lái)看看吧2019-11-11