python正则表达式常用符号及re方法

    xiaoxiao2021-12-14  21

    使用正则表达式首先得导入re模块


    字符意义\d0-9的任何数字\D除了0-9的任何字符\w任何字母、数字或下划线字符\W出字母、数字和下划线意外的任何字符\s空格、制表符或换行符,可以认为是空白的这类符号\S除空格、制表符或换行符的任何字符r忽略转义字符,如想搜索’\d’的时候,直接输入’\d’则认为是数字,r’\d’就OK了|类似于‘或’,如’a|b’可以匹配’a’或’b’?可选的,如’a(b)?c’,可以匹配abc或则ac*可以匹配n>=0次,如’a*b’可以匹配’b’,’aab’+可以匹配n>=1次,如’a+b’可以匹配’ab’,’aab’(想匹配的字符){n}可以匹配n次,如’(a){3}’可以匹配’aaa’,或者’(a){3,5}’可以匹配(aaa)或者(aaaa)或者(aaaaa)?非贪婪匹配,如’(a){3,5}?’只匹配(aaa)^两种情况,在’[^abc]’这样的括号中,表示除了’abc’、’acb’、’bac’等外的;’^abc’表示以’abc’开始的,如’^a’,可以匹配’abc’,但是不匹配’bac’$结束符号,与^的开始符号对应,如’a$’表示以a结尾的,如’zxca’.除了换行外的所有字符

    方法: ①re.compile 将正则表达式编译成一个正则表达式对象。

    xxx = re.compile('abc')

    ②re.search 查找传入的正则表达式对象,但是只返回第一次出现的匹配文本。

    >>>xxx.search('abcd,efg,abc') abc

    ③re.findall 与search类似,但是返回所有匹配到的文本。 且如果调用在一个没有分组的正则表达式上,如\d\d,则返回一个匹配到的字符串的列表,如[‘12’,’21’]; 如果是在一个有分组的正则表达式上,如(\d)(\d),则返回一个串元祖的列表,每个分组对应一个字符串,如[(‘1’,’2’),(‘2’,’1’)

    >>>xxx.findall('abcd,efg,abc') ['abc','abc']

    ④re.I或者re.IGNORECASE 不区分字母大小写

    >>>xxx = re.compile('abc',re.I) >>>xxx.search('AbCdef') AbC

    ⑤re.sub(替换前的内容,替换后的内容,要操作的内容,替换个数) 类似于word中的替换功能

    >>>re.sub(r'abc', 'efg', 'abcdefg') efgdefg

    ⑥re.VERBOSE 忽略空白符及注释,可以写出方便阅读的正则表达式 原:

    >>>xxx = re.compile(((\d|\d\))?(\s|\.))

    后:

    >>>xxx = re.compile('''( >>> (\d|\d\))? #数字或者数字. >>> (\s|\.) #空格、制表符或换行符 >>> )''',re.VERBOSE)

    ⑦join()和split() 插入和分割

    >>>xxx = ['a''b''c'] >>>print xxx ['abc'] >>>print ' '.join(xxx) #在每个字符间插入空格,此时返回的类型是字符串 abc #而不是列表 >>>print 'a,b,c'.split(',')#把一个字符串按照逗号隔开 ['a', 'b', 'c'] #此时返回一个列表

    注:参考了《PYTHON编程快速上手 让繁琐工作自动化》第7章

    转载请注明原文地址: https://ju.6miu.com/read-970049.html

    最新回复(0)