正则表达式的简单应用

**正则表达式:匹配某些符合规则数据的代码**



## > 匹配单个字符
. 除了\n的所有
\d 数字
\D 非数字
\w 数字字母下划线和汉字
\W 非数字字母下划线和汉字
[] 列举中的任意一个
\s 匹配空白,空格和tab键
\S 匹配非空白
数据有关联性可以用-

## > 匹配多个字符
* 匹配前一个字符出现0次或无限次
+ 匹配前一个字符出现1次或无限次,即至少出现1次
?匹配前一个字符出现1次或者0次,即要么有1次,要么没有
{m} 修饰前一个字符出现m次  
{m,} 修饰前一个字符最少出现m次,最多不指定 
{,m} 修饰前一个字符最多出现m次,最少出现0次 
{m,n}修饰前一个字符最少出现m次,最多n次


## > 匹配开头结尾

 ^ 表示以指定字符串开头
 $ 表示以指定字符串开头
[^47] 除了47的字符都匹配
[^#]  除了#的字符都匹配
\. 表示转义特殊的正则表达式代码,转以后就没有其他的含义了

## 匹配分组
| 匹配左右任意一个表达式
(ab) 将括号中字符作为一个分组
\num 引用分组num匹配到的字符串
(?P<name>) 分组起别名 **(重点,多看代码)**
(?P=name) 引用别名为name分组匹配到的字符串  **重点,多看代码**


##   r 的使用
1、r 表示原始数据,最主要的特点是不需要对反斜杠转义,就是一个反斜杠就是真正意义的反斜杠
2、 建议写正则表达式匹配数据,在字符串前加上"r",就不用关心数据转义的问题了
3、(原来的数据什么样,匹配时还是什么样)


## re模块的高级用法:
 

* > re.serach()

  参数:

    # 根据指定正则表达式查找对应的数据, 提示: 只匹配一个
    # 1. 正则表达式
    # 2. 要匹配的字符串 
    
```
    import re
    match_obj = re.search('\d+', '水果共有6种,苹果13个')
    if match_obj:
        print(match_obj.group())
    else:
        print('匹配失败')
    ```

* > re.findall()

  参数:

    # 1. 正则表达式
    # 2. 要匹配的字符串
    # 3. 返回匹配到结果列表 result

 

、、、
result = re.findall('\d+', '水果共有6种,苹果13个')
print(result)

、、、

   

* > 替换:re.sub()

        将匹配到的数据进行替换

        默认是全部替换

    参数:1、正则
             2、替换的内容
             3、要匹配的字符串
            4、替换的次数
        
  ```
    result = re.sub('\d+', '11', '阅读数:10 评论数:6', count=2)
        
    ```


            
* > splite()
 根据匹配进行切割字符串,并返回一个列表
    # 默认是全部替换
    # 1、正则表达式
    # 2、替换的内容
    # 3、要匹配的字符
    # 4、 count:替换的次数-->
       
  ```result = re.split(',|:', my_str, maxsplit=1)
    ```



python 正则默认是贪婪地默认根据正则多匹配数据
    
    































  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值