整理了几个Python正则表达式,拿走就能用!(2)

发表于:2022-9-29 09:46

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:周萝卜    来源:Python绿色通道

  反斜杠问题
  import re
  randstr = "Here is Edureka"
  print(randstr)
  Output:
  Here is Edureka
  这就是反斜杠问题,其中一个斜线从输出中消失了,这个特殊问题可以使用正则表达式来解决。
  import re
  randstr = "Here is Edureka"
  print(re.search(r"Edureka", randstr))
  Output:
  <re.Match object; span=(8, 16), match='Edureka'>
  这就是使用正则表达式解决反斜杠问题的简单方法。
  匹配单个字符
  使用正则表达式可以轻松地单独匹配字符串中的单个字符
  import re
  randstr = "12345"
  print("Matches: ", len(re.findall("d{5}", randstr)))
  Output:
  Matches: 1
  删除换行符
  我们可以在 Python 中使用正则表达式轻松删除换行符
  import re
  randstr = '''
  You Never
  Walk Alone
  Liverpool FC
  '''
  print(randstr)
  regex = re.compile("
  ")
  randstr = regex.sub(" ", randstr)
  print(randstr)
  Output:
  You Never
  Walk Alone
  Liverpool FC
  You Never Walk Alone Liverpool FC
  可以从上面的输出中看到,新行已被空格替换,并且输出打印在一行上。
  还可以使用许多其他东西,具体取决于要替换字符串的内容
  : Backspace
  : Formfeed
  : Carriage Return
  : Tab
  : Vertical Tab
  可以使用如下代码
  import re
  randstr = "12345"
  print("Matches:", len(re.findall("d", randstr)))
  Output:
  Matches: 5
  从上面的输出可以看出,d 匹配字符串中存在的整数。但是,如果我们用 D 替换它,它将匹配除整数之外的所有内容,与 d 完全相反。
  接下来我们了解一些在 Python 中使用正则表达式的重要实际例子。
  正则表达式的实际例子
  我们将检查使用最为广泛的 3 个主要用例
  ·电话号码验证
  · 电子邮件地址验证
  · 网页抓取
  电话号码验证
  需要在任何相关场景中轻松验证电话号码
  考虑以下电话号码:
  · 444-122-1234
  · 123-122-78999
  · 111-123-23
  · 67-7890-2019
  电话号码的一般格式如下:
  · 以 3 位数字和“-”符号开头
  · 3 个中间数字和“-”号
  · 最后4位数
  我们将在下面的示例中使用 w,请注意 w = [a-zA-Z0-9_]
  import re
  phn = "412-555-1212"
  if re.search("w{3}-w{3}-w{4}", phn):
      print("Valid phone number")
  Output:
  Valid phone number
  电子邮件验证
  在任何情况下验证电子邮件地址的有效性。
  考虑以下电子邮件地址示例:
  ·Anirudh@gmail.com
  · Anirudh@com
  · AC.com
  · 123 @.com
  我们只需一眼就可以从无效的邮件 ID 中识别出有效的邮件 ID,但是当我们的程序为我们做这件事时,却并没有那么容易,但是使用正则,就非常简单了。
  指导思路,所有电子邮件地址应包括:
  · 1 到 20 个小写和/或大写字母、数字以及 . _ % +
  · 一个@符号
   · 2 到 20 个小写和大写字母、数字和加号
  · 一个点号
  · 2 到 3 个小写和大写字母
  import re
    email = "ac@aol.com md@.com @seo.com dc@.com"
  print("Email Matches: ", len(re.findall("[w._%+-]{1,20}@[w.-]{2,20}.[A-Za-z]{2,3}", email)))
  Output:
  Email Matches: 1
  从上面的输出可以看出,我们输入的 4 封电子邮件中有一封有效的邮件。
  这基本上证明了使用正则表达式并实际使用它们是多么简单和高效。
  网页抓取
  从网站上删除所有电话号码以满足需求。
  要了解网络抓取,请查看下图:
  我们已经知道,一个网站将由多个网页组成,我们需要从这些页面中抓取一些信息。
  网页抓取主要用于从网站中提取信息,可以将提取的信息以 XML、CSV 甚至 MySQL 数据库的形式保存,这可以通过使用 Python 正则表达式轻松实现。
  import urllib.request
  from re import findall
  url = "http://www.summet.com/dmsi/html/codesamples/addresses.html"
  response = urllib.request.urlopen(url)
  html = response.read()
  htmlStr = html.decode()
  pdata = findall("(d{3}) d{3}-d{4}", htmlStr)
  for item in pdata:
      print(item)
  Output:
  (257) 563-7401
  (372) 587-2335
  (786) 713-8616
  (793) 151-6230
  (492) 709-6392
  (654) 393-5734
  (404) 960-3807
  (314) 244-6306
  (947) 278-5929
  (684) 579-1879
  (389) 737-2852
  ...
  我们首先是通过导入执行网络抓取所需的包,最终结果包括作为使用正则表达式完成网络抓取的结果而提取的电话号码。
  本文内容不用于商业目的,如涉及知识产权问题,请权利人联系51Testing小编(021-64471599-8017),我们将立即处理
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号