返回

Python正则表达式中的split和sub用法及起名分组和常用正则语法的总结

后端

正则表达式,又称正规表达式(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中正则表达式的一些基础用法和常用语法,还有更多的内容需要学习和掌握。