当前位置:首页>python>史上最好懂的Python正则表达式

史上最好懂的Python正则表达式

  • 2026-09-02 19:39:43
史上最好懂的Python正则表达式

正则表达式在较为复杂的文本数据处理中扮演极其重要和强大的角色,但其理解和运用具有不小难度。

简单说来,正则表达式可理解为一种特殊的字符串样式,主要用来匹配符合该样式的各种具体字符串。如正则表达式'勉[強学]'可匹配'勉強'和'勉学'这两个字符串,即'[強学]'这个部分可以匹配字符串'強'或'学'。

在正则表达式当中,经常会用到方括号'[…]'、换行符'\n'、制表符'\t'等具有特殊匹配含义的字符串样式。下表较为通俗、全面地总结了那些具备特殊匹配含义且常用于日语文本处理的正则表达式。

类别

字符串样式

特殊匹配含义

用于匹配单个字符的预定义正则表达式

'.'

匹配换行符以外的任意一个字符

'\w'

匹配任意一个字母、数字、中日文汉字、假名或下划线

'\W'

匹配任意一个非字母、数字、中日文汉字、假名和下划线(即匹配任意一个符号或空白)

'\s'

匹配任意一个空白

'\S'

匹配任意一个非空白

'\d'

匹配任意一个数字

'\D'

匹配任意一个非数字

'\n'

匹配一个换行符

'\t'

匹配一个制表符(即按Tab键后所产生的一段4个字符长度的空白)

用于指定匹配范围的正则表达式

'…|…'

匹配|两边的字符串,如'福岡|博多'可匹配'福岡'或'博多'

'[…]'

匹配包含在[]中的任意一个字符,如'[福岡県]'可匹配'福'、'岡'或'県'

'[^…]'

匹配[]中^后面所有字符以外的任意一个字符,如'[^福岡県]'可匹配'福'、'岡'和'県'以外的任意一个字符

'[0-9]'

匹配任意一个数字

'[a-z]'

匹配任意一个小写字母

'[A-Z]'

匹配任意一个大写字母

'[a-zA-Z]'

匹配任意一个字母

'[0-9a-zA-Z]'

匹配任意一个数字或字母

'[ぁ-ん]'或'[\u3040-\u309F]'

匹配任意一个平假名

'[ァ-ン]'或'[\u30A0-\u30FF]'

匹配任意一个片假名

'[\u4E00-\u9FFF]'

匹配任意一个中日文汉字

'[ぁ-んァ-ン]'或'[\u3040-\u309F\u30A0-\u30FF]'

匹配任意一个假名

'[ぁ-んァ-ン\u4E00-\u9FFF]'或'[\u3040-\u309F\u30A0-\u30FF\u4E00-\u9FFF]'

匹配任意一个假名或中日文汉字

用于指定匹配数量的正则表达式

'…{m}'

匹配{m}前一个字符重复m次后的字符串,如'福岡{2}'可匹配到'福岡岡福岡福'中的'福岡岡'

'…{m,n}'

匹配{m,n}前一个字符重复m至n次后的字符串,如'福岡{1,2}'理论上可匹配到'福岡岡福岡福'中的'福岡'或'福岡岡',但由于其会优先匹配重复次数达到最多时的'福岡岡',所以先后匹配上的是'福岡岡'和'福岡'

'…?'

匹配?前一个字符重复0次或1次后的字符串,如'福岡?'理论上可匹配到'福岡岡福岡福'中的'福'或'福岡',但由于其会优先匹配重复次数达到最多时的'福岡',所以先后匹配上的是'福岡'、'福岡'和'福'

'…+'

匹配+前一个字符重复1至无限次后的字符串,如'福岡+'理论上可匹配到'福岡岡福岡福'中的'福岡'或“'福'加多个'岡'”,但由于其会优先匹配重复次数达到最多时的字符串,所以先后匹配上的是'福岡岡'和'福岡'

'…*'

匹配*前一个字符重复0至无限次后的字符串,如'福岡*'理论上可匹配到'福岡岡福岡福'中的'福'、'福岡'或“'福'加多个'岡'”,但由于其会优先匹配重复次数达到最多时的字符串,所以先后匹配上的是'福岡岡'、'福岡'和'福'

用于匹配特殊字符本身的转义正则表达式

'\.'

匹配一个字面上的'.'

'\|'

匹配一个字面上的'|'

'\['

匹配一个字面上的'['

'\]'

匹配一个字面上的']'

'\{'

匹配一个字面上的'{'

'\}'

匹配一个字面上的'}'

'\?'

匹配一个字面上的'?'

'\+'

匹配一个字面上的'+'

'\*'

匹配一个字面上的'*'

'\('

匹配一个字面上的'('

'\)'

匹配一个字面上的')'

'\\'

匹配一个字面上的'\'

通过上表中各类正则表达式的灵活运用和排列组合,几乎可以达到匹配任意字符串的目的。事实上,由点号'.'和星号'*'组合而成的正则表达式'.*'基本可以匹配任意长度的任意字符串。

主要参考文献:

1. 雷蕾, 2020. 基于Python的语料库数据处理[M]. 北京: 科学出版社.

2. 钟勇, 2023. Python日语数字人文之语料库语言学技术及其应用[M]. 南京: 东南大学出版社.

最新文章

随机文章