python獲取字符串中的email
調(diào)用re庫,通過使用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ù),并動態(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)
運行結(jié)果:

補充:
從指定的字符串中提取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) {
?//前項掃描
?String s = null;
? i= beginPos;
?while(i>0) {
s = content.substring(i-1,i);
?if (isLetter(s))
? ? preHalf = s+preHalf;
? else
? ? break;
? i--;
? }
?//后項掃描
? 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)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
使用Django框架中ORM系統(tǒng)實現(xiàn)對數(shù)據(jù)庫數(shù)據(jù)增刪改查
這篇文章主要介紹了使用Django的ORM實現(xiàn)對數(shù)據(jù)庫數(shù)據(jù)增刪改查方法,文中附含詳細示例代碼以及過程詳解,有需要的朋友可以借鑒參考下2021-09-09
利用Python實現(xiàn)自動生成小學(xué)生計算題
過年期間發(fā)現(xiàn)小外甥已經(jīng)上小學(xué)了,我姐說老師今天給他們布置了寒假作業(yè):每天堅持做乘法和加減法混合運算。這我必須幫幫忙,用Python寫了一段自動生成小學(xué)生計算題的代碼,希望外甥不要太感謝我2023-02-02
詳解python3實現(xiàn)的web端json通信協(xié)議
本篇文章主要介紹了python3實現(xiàn)的web端json通信協(xié)議,具有一定的參考價值,感興趣的小伙伴們可以參考一下。2016-12-12
Python十類常見異常類型總結(jié)(附捕獲及異常處理方式)
在編寫程序時難免會遇到錯誤,有的是編寫人員疏忽造成的語法錯誤,有的是程序內(nèi)部隱含邏輯問題造成的數(shù)據(jù)錯誤等等,這篇文章主要給大家介紹了關(guān)于Python十類常見異常類型總結(jié)的相關(guān)資料,文中還附捕獲及異常處理方式,需要的朋友可以參考下2023-06-06
python各類經(jīng)緯度轉(zhuǎn)換的實例代碼
這篇文章主要介紹了python各類經(jīng)緯度轉(zhuǎn)換的實例代碼,非常不錯,具有一定的參考借鑒價值,具有一定的參考借鑒價值,需要的朋友可以參考下2019-08-08
Python3實現(xiàn)Web網(wǎng)頁圖片下載
這篇文章主要介紹了Python3通過request.urlopen實現(xiàn)Web網(wǎng)頁圖片下載,感興趣的小伙伴們可以參考一下2016-01-01
python3實現(xiàn)用turtle模塊畫一棵隨機櫻花樹
今天小編就為大家分享一篇python3實現(xiàn)用turtle模塊畫一棵隨機櫻花樹,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-11-11

