正则表达式

正则表达式

一、什么是正则表达式

​ 正则表达式(Regular Expression):描述了一种字符串匹配的模式(patton),包括普通字符(例如,a和z之间的字母)和特殊字符(称为元字符)。

​ 作用:

  1. 检查一个字符串是否含有某种子字符串

  2. 将匹配的子字符串替换

  3. 从某个子字符串中取出符合某个条件的子字符串

    ​ 特点:繁琐却强大

二、匹配网址 详解

⛏匹配网址的正则字符串:'https?😕/(?:[-\w.]|(?:%[\da-fA-F]{2}) )+'

'''一、正则表达式:'''
'''
定义:用来检索或者替换某个规则的文本
'''

import re

def Find(string):
    # findall
    url = re.findall( 'https?://(?:[-\w.]|(?:%[\da-fA-F]{2}) )+' , string)
    return  url

string = 'Runnoob __的网址是:https://www.runoob.com,Google 的网址是:https://www.google.com'
print("URLS:",Find(string))
'''正则表达式:是一个特殊的字符序列,它能帮助你方便的检查一个字符串是否与某种模式匹配'''

#场景一、怎样从一个字符串中找到 数字 并输出
str = 'A1abcY123,AdefH&#____^!'
patt1 = '[0-9]'                 # 匹配 数字   以 , 隔开
print(re.findall(patt1,str))
patt2 = '[a-z]'                 # 匹配 任何小写字母
print(re.findall(patt2,str))
patt3 = '[A-Z]'                 # 匹配 任何大写字母
print('part3 = ',re.findall(patt3,str))
patt4 = '[A-Z0-9]'              # 匹配 任何 大写字母和数字
print(re.findall(patt4,str))
patt5 = '[\w]'                  # 匹配 数字、字母、下划线  <=>    [a-zA-Z0-9_]
patt6 = '[a-zA-Z0-9_]'
print(re.findall(patt5,str))
print(re.findall(patt6,str))

print(r'\t','\\t')              # 把 '\t' 当成普通字符输出

字符串2 = '百度的网址是:https://www.baidu.com,小米的网址是:https://www.mi.com'
正则表达式规则 = 'https?://www.'
print(re.findall(正则表达式规则,字符串2))

str3 =  '01Aa#!'
patt7 = '[a]'
print('测试:',re.findall(patt7,str3))

三、常用的 具有指定含义的符号

’https?😕/(?:[-\w.]|(?:%[\da-fA-F]{2}) )+'

1.语法

1)普通字符

​ 包括所有大写字母小写字母数字标点符号其他符号

2)非打印字符

字符描述
\n匹配一个换行符。等价于\x0a 和 \cJ
\t匹配一个制表符。等价于 \x09 和 \cI。

3) 特殊字符

字符描述
匹配前面的子表达式零次或一次,或指明一个非贪婪限定符。要匹配 ? 字符,请使用 ?。
+匹配前面的子表达式一次或多次。要匹配 + 字符,请使用 +。
.匹配除换行符 \n 之外的任何单字符。要匹配 . ,请前面加反斜杠
|指明两项之间的一个选择
( )标记一个子表达式的开始和结束位置。

4) 限定符

2.匹配规则

1)等价

?   等价于  匹配长度{0,1}
*   等价于  匹配长度{0,}
+   等价于  匹配长度{1,}
\d  等价于  [0-9]
\D  等价于  [^0-9]
\   等价于  [A-Za-z_0-9]

2) 常用的运算符和表达式

 ^ 开始
  () 域段
  [] 包含,默认是一个字符长度
  [^] 不包含,默认是一个字符长度
  {n,m} 匹配长度
  . 任何单个字符(\. 字符点)
  | 或                      # 咋用?
  \ 转义
  $ 结尾
  [A-Z] 26个大写字母
  [a-z] 26个小写字母
  [0-9] 0至9数字
[A-Za-z0-9] 26个大写字母、26个小写字母和0至9数字
  , 分割
  .
  
  分割语法:
  [A,H,T,W] 包含A或H或T或W字母
  [a,h,t,w] 包含a或h或t或w字母
  [0,3,6,8] 包含0或3或6或8数字
3)语法和释义
  基础语法  "^  ([]{})            ([]{})             ([]{})        $"
正则字符串 = "开始([包含内容]{长度})([包含内容]{长度})([包含内容]{长度})结束"
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值