返回
Python正则表达式中的split和sub用法及起名分组和常用正则语法的总结
后端
2023-10-12 23:08:33
正则表达式,又称正规表达式(Regular Expression),是由一系列字符串组成的文字模式,用来或匹配一系列符合某个规则的字符串,是计算机科学的一个概念。
正则表达式用于匹配字符串中的某些内容,可以对字符串进行查找、替换、删除等操作。在Python中,正则表达式作为内置模块存在,可以使用re来进行正则表达式的相关操作。
Python中正则表达式的split方法可以将一个字符串按照指定的正则表达式拆分为多个字符串。split方法的语法格式为:
str.split(pattern, maxsplit=0)
其中:
- pattern:要匹配的正则表达式。
- maxsplit:最多拆分多少次。如果maxsplit为0,则字符串将被拆分成尽可能多的部分。
split方法的返回值是一个列表,其中包含了按照正则表达式拆分后的字符串。
>>> s = 'aaa,bbb,ccc,ddd'
>>> s.split(',')
['aaa', 'bbb', 'ccc', 'ddd']
Python中正则表达式的sub方法可以将一个字符串中的所有匹配项替换为另一个字符串。sub方法的语法格式为:
str.sub(pattern, repl, count=0)
其中:
- pattern:要匹配的正则表达式。
- repl:替换的字符串。
- count:最多替换多少次。如果count为0,则所有匹配项都将被替换。
sub方法的返回值是一个新的字符串,其中所有的匹配项都被替换为了repl。
>>> s = 'aaa,bbb,ccc,ddd'
>>> s.sub(',', ' ')
'aaa bbb ccc ddd'
起名分组是指在正则表达式中给匹配到的子串起一个名字,这样就可以在后续的正则表达式中引用这个子串。起名分组的语法格式为:
(?P<name>pattern)
其中:
- name:要给匹配到的子串起的名称。
- pattern:匹配的正则表达式。
起名分组的返回值是一个包含了所有匹配到的子串的元组。
>>> s = 'aaa,bbb,ccc,ddd'
>>> m = re.search(r'(?P<word>[a-z]+)', s)
>>> m.group('word')
'aaa'
常用正则语法如下:
- .:匹配任何单个字符。
- ^:匹配字符串的开头。
- $:匹配字符串的结尾。
- *:匹配前面的子表达式零次或多次。
- +:匹配前面的子表达式一次或多次。
- ?:匹配前面的子表达式零次或一次。
- []:匹配括号中的任何一个字符。
- [^]:匹配不在括号中的任何一个字符。
- \d:匹配任何数字。
- \w:匹配任何字母、数字或下划线。
- \s:匹配任何空白字符。
- \b:匹配单词的边界。
这些只是Python中正则表达式的一些基础用法和常用语法,还有更多的内容需要学习和掌握。