python获取字符串中的email

作者:aigo-2021 时间:2021-04-23 21:23:29 

 调用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)

修改:

通过调用函数,并动态地为字符串赋值

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)

运行结果:

python获取字符串中的email

补充:

从指定的字符串中提取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; 
 }

来源:https://blog.csdn.net/aigo_2021/article/details/123859764

标签:python,获取,字符串,email
0
投稿

猜你喜欢

  • asp sql数据验证之特殊字符处理

    2008-02-24 16:35:00
  • 利用Google Ajax Library API加速常用js类库的载入

    2008-06-17 17:44:00
  • python买卖股票的最佳时机(基于贪心/蛮力算法)

    2022-12-26 14:44:24
  • Symfony2实现从数据库获取数据的方法小结

    2023-11-14 13:56:35
  • 定位?浮动?自适应?

    2008-06-30 14:20:00
  • 使用setup.py安装python包和卸载python包的方法

    2023-01-31 02:20:47
  • SQL Server中处理空值时涉及的三问题

    2009-01-20 11:24:00
  • python实现数据预处理之填充缺失值的示例

    2022-01-24 19:44:30
  • python获取文件真实链接的方法,针对于302返回码

    2023-11-23 04:31:03
  • PHP中file_get_contents函数抓取https地址出错的解决方法(两种方法)

    2023-10-14 02:31:42
  • Python内置函数bin() oct()等实现进制转换

    2021-05-15 05:15:42
  • Python数据可视化图实现过程详解

    2022-08-30 19:24:17
  • 学习Python爬虫的几点建议

    2023-08-08 04:29:08
  • Pytorch实现List Tensor转Tensor,reshape拼接等操作

    2021-06-06 19:58:51
  • Oracle 数据库操作类

    2009-08-12 12:06:00
  • python3+PyQt5实现自定义窗口部件Counters

    2021-05-21 10:47:47
  • Python中paramiko模块的基础操作与排错问题

    2023-06-21 04:45:33
  • 利用pyecharts读取csv并进行数据统计可视化的实现

    2023-07-15 07:18:03
  • python解析xml文件方式(解析、更新、写入)

    2022-03-07 05:19:01
  • js对象基础实例分析

    2023-09-03 12:07:56
  • asp之家 网络编程 m.aspxhome.com