Python:正则表达表-中括号表达式
若要创建匹配字符组的⼀个列表,请在⽅括号([ 和 ])内放置⼀个或更多单个字符。当字符括在中括号内时,该列表称为"中括号表达式"。与在任何别的位置⼀样,普通字符在中括号内表⽰其本⾝,即,它在输⼊⽂本中匹配⼀次其本⾝。⼤多数特殊字符在中括号表达式内出现时失去它们的意义。不过也有⼀些例外,如:
如果 ] 字符不是第⼀项,它结束⼀个列表。若要匹配列表中的 ] 字符,请将它放在第⼀位,紧跟在开始 [ 后⾯。
\ 字符继续作为转义符。若要匹配 \ 字符,请使⽤ \。
括在中括号表达式中的字符只匹配处于正则表达式中该位置的单个字符。以下正则表达式匹配 Chapter 1、Chapter 2、Chapter 3、Chapter 4 和 Chapter 5:
/Chapter [12345]/
请注意,单词 Chapter 和后⾯的空格的位置相对于中括号内的字符是固定的。中括号表达式指定的只是匹配紧跟在单词 Chapter 和空格后⾯的单个字符位置的字符集。这是第九个字符位置。
若要使⽤范围代替字符本⾝来表⽰匹配字符组,请使⽤连字符 (-) 将范围中的开始字符和结束字符分开。单个字符的字符值确定范围内的相对顺序。下⾯的正则表达式包含范围表达式,该范围表达式等效于上⾯显⽰的中括号中的列表。
/Chapter [1-5]/
当以这种⽅式指定范围时,开始值和结束值两者都包括在范围内。注意,还有⼀点很重要,按 Unicode 排序顺序,开始值必须在结束值的前⾯。
若要在中括号表达式中包括连字符,请采⽤下列⽅法之⼀:
⽤反斜杠将它转义:
[-]
将连字符放在中括号列表的开始或结尾。下⾯的表达式匹配所有⼩写字母和连字符:
[-a-z]
[a-z-]
创建⼀个范围,在该范围中,开始字符值⼩于连字符,⽽结束字符值等于或⼤于连字符。下⾯的两个正则表达式都满⾜这⼀要求:
[!–]
[!-~]
若要查不在列表或范围内的所有字符,请将插⼊符号 (^) 放在列表的开头。如果插⼊字符出现在列表中的其他任何位置,则它匹配其本⾝。下⾯的正则表达式匹配1、2、3、4 或 5 之外的任何数字和字符:
/Chapter [^12345]/
正则表达式获取括号内容在上⾯的⽰例中,表达式在第九个位置匹配 1、2、3、4 或 5 之外的任何数字和字符。这样,例如,Chapter 7 就是⼀个匹配
项,Chapter 9 也是⼀个匹配项。
上⾯的表达式可以使⽤连字符 (-) 来表⽰:
/Chapter [^1-5]/
中括号表达式的典型⽤途是指定任何⼤写或⼩写字母或任何数字的匹配。下⾯的表达式指定这样的匹配:
/[A-Za-z0-9]/

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。