python3 正则,Python的正则表达式

  python3 正则,Python的正则表达式

  本文主要详细介绍Python3正则表达式。本文中的示例代码非常详细,具有一定的参考价值。感兴趣的朋友可以参考一下,希望能帮到你。

  00-1010 1.导言2。分段字符串3。分组4。贪心匹配5。汇编摘要

  

目录

  #正则表达式:用来匹配字符串的武器;

  #设计思路:用一种描述性的语言,为字符串定义一个规则。任何符合规则的字符串都被认为是匹配的,否则,该字符串是非法的;

  #示例:确定字符串是否是合法的电子邮件方法:

  # 1.创建匹配电子邮件的正则表达式;

  # 2.用这个正则表达式匹配用户的输入来判断是否合法;

  #例如:\d可以匹配一个数字,\w可以匹配一个字母或数字;

  # a .“00 \ d”可以匹配“008”,但不能匹配“00A”;

  # b. \d\d\d 可以匹配 009 ;

  # c. \w\w\d 可以匹配 py3 ;

  #比如:匹配任何字符

  # a. py . 可以匹配 pyc , pyt 等;

  #匹配变长的字符:

  # a .用*表示任意字符(包括0);

  # b .用于表示至少一个字符;

  # C .使用?0或1个字符;

  # d .用{n}表示n个字符;

  # e .用{n,m}表示n-m个字符;

  #示例:\d{2}\s \d{3,6}

  # a.\d{2}表示匹配2个数字,如:‘52’;

  # b.\s可以匹配一个空格,\s表示至少有一个空格,如:match ,等。

  # c.\d{3,6}表示3-6个数字,如:‘584520’;

  #精确匹配,用[]表示范围

  # a.[0-9a-zA-Z\_]表示可以匹配数字、字母、下划线;

  # b.[0-9a-zA-Z\_]表示由至少一个数字、字母或下划线组成的字符串可以匹配,如: Py20 ;

  # c.[a-zA-Z\_][0-9a-zA-Z\_]*表示匹配以字母或下划线开头,后跟任意数字、字母或下划线的字符串;

  # d. [A-ZA-Z \ _] [0-9A-ZA-Z \ _] {0,19}将可变长度限制为1-20个字符;

  # e.AB表示匹配A或B,如:(W W) Illlard匹配 willard 或 Willard ;

  # f.^表示行首,\ d表示必须以数字开头;

  # g.$表示行尾,\d$表示必须以数字结尾;

  # re模块:

  进口re

  Print(匹配成功,返回匹配对象:)

  print(re.match(r^\d{3}\-\d{3,8}$, 020-6722053 ))

  打印(-)

  打印(匹配失败,返回无:)

  print(re.match(r^\d{3}\-\d{3,8}$, 020 6722053 ))

  打印(-)

  User_input=input(请输入一个测试字符串:)

  如果是re.match(r^Ww{1-10},用户输入):

  打印(没关系。)

  else:

  打印(失败。)

  #结果输出:

  匹配成功,返回匹配对象:

  关于。匹配对象;span=(0,11),match=020-6722053

  -

  匹配失败,返回无:

  没有人

  -

  请输入测试字符串:Willard584520

  没关系。

  

1.简介

  进口re

  str_input=input(请输入测试字符串:)

  #用空格分割字符串

  print(re.split(r\s ,str_input))

  #结果输出:

  #请输入测试字符串:你好Python。

  # [你好, Python ]

  ">import re

  str_input = input("Please input test string:")

  print(re.split(r"[\s\,]+", str_input))

  # 结果输出:

  # Please input test string:Hello Willard,welcome to FUXI Technology.

  # [Hello, Willard, welcome, to, FUXI, Technology.]

  

  

import re

  str_input = input("Please input test string:")

  print(re.split(r"[\s\,\.\;]+", str_input))

  # 结果输出:

  # Please input test string:Hello;I am Willard.Welcome to FUXI Technology.

  # [Hello, I, am, Willard, Welcome, to, FUXI, Technology, ]

  

  

  

3.分组

  

# ()表示要提取的分组(Group)

  # ^(\d{3})-(\d{3,8})$分别定义了两个组

  import re

  match_test = re.match(r"^(\d{3})-(\d{3,8})$","020-6722053")

  print("match_test:", match_test)

  print("match_group(0):", match_test.group(0))

  print("match_group(1):", match_test.group(1))

  print("match_group(2):", match_test.group(2))

  print("---------------------------------------------------------")

  website_match_test = re.match(r"(\w{3}).(\w{5}).(\w{3})", "www.baidu.com")

  print("website_match_test:", website_match_test)

  print("website_match_test_group(0):", website_match_test.group(0))

  print("website_match_test_group(1):", website_match_test.group(1))

  print("website_match_test_group(2):", website_match_test.group(2))

  print("website_match_test_group(3):", website_match_test.group(3))

  

  

# 结果输出:
match_test: <re.Match object; span=(0, 11), match='020-6722053'>
match_group(0): 020-6722053
match_group(1): 020
match_group(2): 6722053
---------------------------------------------------------
website_match_test: <re.Match object; span=(0, 13), match='www.baidu.com'>
website_match_test_group(0): www.baidu.com
website_match_test_group(1): www
website_match_test_group(2): baidu
website_match_test_group(3): com

  

  

  

4.贪婪匹配

  

# 贪婪匹配:匹配尽可能多的字符;

  import re

  string_input = input("Please input string:")

  print("采用贪婪匹配:")

  print(re.match(r"^(\d+)(0*)$", string_input).groups())

  print("---------------------")

  print("采用非贪婪匹配:")

  print(re.match(r"^(\d+?)(0*)$", string_input).groups())

  

  

Please input string:1008600

  采用贪婪匹配:

  (1008600, )

  ---------------------

  采用非贪婪匹配:

  (10086, 00)

  

  

  

5.编译

  

# 使用正则表达式,re模块内部:

  # a.编译正则表达式,如果正则表达式的字符串本身不合法,抛出错误;

  # b.用编译后的正则表达式去匹配字符串;

  # c.如果一个正则表达式要重复使用几千次,考虑效率,

  # 可以预编译正则表达式,重复使用时,不需要编译这个步骤,直接匹配;

  import re

  # 编译

  re_telephone = re.compile(r"^(\d{3})-(\d{3,8})$")

  # 使用

  telephone_input1 = input("Willard,please input your telphone number:")

  telephone_input2 = input("Chen,Please input your telphone number:")

  print("match:020-6722053,", re_telephone.match(telephone_input1).groups())

  print("match:020-6722066,", re_telephone.match(telephone_input2).groups())

  

  

# 结果输出:
Willard,please input your telphone number:020-6722053
Chen,Please input your telphone number:020-6722066
match:020-6722053, ('020', '6722053')
match:020-6722066, ('020', '6722066')

  

  

  

总结

  本篇文章就到这里了,希望能够给你带来帮助,也希望您能够多多关注盛行IT软件开发工作室的更多内容!

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: