如何使用正規表達式— Python 3.9.5 說明文件 | python正規表示法
简单正则让我们从最简单的正则表达式开始吧。由于正则表达式是用来操作字符串的,我们将从最常见的任务开始:匹配字符。关于正则表达式背后的计算机科学的详细解释(确定性和非确定性有限自动机),你可以参考几乎所有关于编写编译器的教科书。匹配字符大多数字母和符号都会简单地匹配自身。例如,正则表达式test将会精确地匹配到test。(你可以启用不区分大小写模式,让这个正则也匹配Test或TEST,稍后会详细介绍。)但该规则有例外。有些字符是特殊的元字符(metacharacters),并不匹配自身。事实上,它们表示匹配一些非常规的内容...
简单正则让我们从最简单的正则表达式开始吧。由于正则表达式是用来操作字符串的,我们将从最常见的任务开始:匹配字符。
关于正则表达式背后的计算机科学的详细解释(确定性和非确定性有限自动机),你可以参考几乎所有关于编写编译器的教科书。
匹配字符大多数字母和符号都会简单地匹配自身。例如,正则表达式 test 将会精确地匹配到 test 。(你可以启用不区分大小写模式,让这个正则也匹配 Test 或 TEST ,稍后会详细介绍。)
但该规则有例外。有些字符是特殊的 元字符(metacharacters),并不匹配自身。事实上,它们表示匹配一些非常规的内容,或者通过重复它们或改变它们的含义来影响正则的其他部分。本文的大部分内容都致力于讨论各种元字符及其作用。
这是元字符的完整列表。它们的含义将在本 HOWTO 的其余部分进行讨论。
. $ * + ? { } [ ] | ( )首先介绍的元字符是 [ 和 ] 。这两个元字符用于指定一个字符类,也就是你希望匹配的字符的一个集合。这些字符可以单独地列出,也可以用字符范围来表示(给出两个字符并用 - 分隔)。例如,[abc] 将匹配 a、b、c 之中的任意一个字符;这与 [a-c] 相同,后者使用一个范围来表达相同的字符集合。如果只想匹配小写字母,则正则表达式将是 [a-z] 。
元字符(除了 )在字符类中是不起作用的。 例如,[akm$] 将会匹配以下任一字符 a, k, m 或 $ 。$ 通常是一个元字符,但在一个字符类中它的特殊性被消除了。
你可以通过对集合 取反 来匹配字符类中未列出的字符。方法是把 放在字符类的最开头。 例如,[5] 将匹配除 5 之外的任何字符。 如果插入符出现在字符类的其他位置,则它没有特殊含义。 例如:[5] 将匹配 5 或 。
也许最重要的元字符是反斜杠, 。 与 Python 字符串字面量一样,反斜杠后面可以跟各种字符来表示各种特殊序列。它还用于转义元字符,以便可以在表达式中匹配元字符本身。例如,如果需要匹配一个 [ 或 ,可以在其前面加上一个反斜杠来消除它们的特殊含义:[ 或 \ 。
一些以 开头的特殊序列表示预定义的字符集合,这些字...