美文网首页
正则在Python中的使用

正则在Python中的使用

作者: 酷酷的图图 | 来源:发表于2018-06-20 21:47 被阅读0次

    人生苦短 我用python

    开始愉快的享(代)受(码)时间:

    • 注意:

    1):正则表达式(RE)是一种小型的 高度专业化的编程语言 它内嵌python中 并通过re模块来实现但并非所有的字符串处理都能使用正则表达式
    2):python中 可以将正则表达式编译成一个对象 re提供了一个正则表达式引擎的接口 可以让你将REstring编译成对象并用他们来进行匹配

    • 常用元字符
    [ ]:   常用于指定字符集 元字符在字符集中不起作用
    
    ^ : 尖角号 通常用于匹配行首
    
    $ :dollor符  用于匹配末尾
    
    \ 将元字符转成普通符号的话 就用转义字符\
    
    {8} :{}表示将前面规则重复8次
    
    * 表示前面重复0到多次
    
    +表示最少重复一次
    
    ?:表示可有可无 当出现在重复元字符后时表示非贪婪模式 
    
    x|y     匹配 x 或 y
    
    \d  匹配一个数字字符。等价于 [0-9]
    \D  匹配一个非数字字符。等价于 [^0-9]
    
    \w  匹配字母、数字、下划线。等价于'[A-Za-z0-9_]'
    \W  匹配非字母、数字、下划线。等价于 '[^A-Za-z0-9_]'
    
    \s  匹配任何空白字符,包括空格、制表符、换页符等等。等价于 [ \f\n\r\t\v]
    \S  匹配任何非空白字符。等价于 [^ \f\n\r\t\v]
    
    .   匹配除换行符 \n 之外的任何单字符 。
    
    • 在python中的方法使用:

    导入模块 import re

    import re 
    
    pattern = re.compile(r'规则') # 将正则表达式编译成Pattern对象
    
    pattern.match('hello world!')  # 匹配开头 如果有结果的返回一个对象
    
    pattern.search('hello world!')  # match 只查找开头部分 search整个字符串查找 返回第一个匹配的结果
    
    pattern.findall('one1two2three3four4') # 查找整个字符串  返回一个列表
    
    pattern.split(''字符串'') # 可以将字符串匹配正则表达式的部分割开并返回一个列表  例如: re.split(r'[\+\-\*]', s)  按照+ - * 分割字符串s
    
    pattern.sub('要替换的内容', '原始要被替换的内容')  #  替换
    
    
    • 示例:
    import  re
    
    pattern = re.compile(r'(\w+)')
    s = "hello 123,hello 456"
    
    #查找
    s_list=pattern.findall(s)
    print(s_list)
    # 替换
    s_list=pattern.sub('hello world',s)
    print(s_list)
    
    结果为:
    ['hello', '123', 'hello', '456']
    hello world hello world,hello world hello world
    
    • :编译前1:re.findall(rule,str)即 (规则, 字符串)

    • 编译后2:re_tel = re.compile(rule,这里选填) 编译后要比编译前匹配起来的速度快很多

    相关文章

      网友评论

          本文标题:正则在Python中的使用

          本文链接:https://www.haomeiwen.com/subject/prqfyftx.html