在正则表达式中你需要指定一些规则命令来描述你希望匹配到的字符串集合 , 这些字符串集合可能包含英文句子 , e-mail地址 , Tex命令 , 或者任何东西.
Python中的正则表达式 是用C语言写的 , 所以效率非常高 .
大多数的字符会匹配他们自身 , 举个例子 , 正则表达式"FishC""将完全匹配字符串"FishC"(当然也可以启用不区分大小写 , 这样就可以用"FishC" 来匹配到 fISHc了).
上面说大部分的字符会匹配自身是因为 , 有所谓的 元字符 他们并不能匹配自身(需要用反斜杠 让字符本身的功能失效) 下面会讲解元字符的作用 . 这里给出完整的元字符列表 [ . ^ $ * + ? { } [ ] \ | () ] 这些元字符十分的重要如果没有这些元字符 正则表达式就和find()方法 一样的 不好用了.
开始解释 []
他们用于制定一个字符类用于存放你需要匹配的字符集 , 可以单独列出需要匹配的字符 , 也可以通过两个字符和一个横杠 - 来指定范围 . 例如[abc]会匹配字符a,b,c;[a-c]可以实现相同的功能 , 或者使用范围来表示和前者相同的字符集和 , 如果你知相匹配小写字符 你的re 可以写成 [a-z]. 需要注意的是 元字符 在[]中是不会有特殊功能的 (没有有功能的必要).在字符类中他们值匹配自身
你还可以匹配方括号中没有列出来的字符 , 如果你想实现这个功能可以 [^5] 这样就会匹配除了5以外的其他所有字符 . 当然最重要的 元字符 是属于 \ 如果你想匹配 [ 或 \ 你可以 \[或\\ . \
下面举一个例子 . \w 可以匹配 任何单词字符 , 如果正则表达式以字节的形式表示 , 这相当于类 [a-z A-Z 0-9] 如果正则表达式是一个字符串 , \w 会匹配所有 Unicode 数据库中标记位字母的字符 , 你可以在编译正则表达式的时候
通过re.ASCll来进一步限制\w的范围 .
下面是一些反斜杠加字符构成的特殊含义 .
上面表中的字符也可以包含在一个字符类中,并且拥有一样的含义 [\s,.],意味着可以匹配任何非空白自负和 "," "."
最后一个是 "." ,他将匹配任何出来换行符以外的字符 . 如果设置了 re.DOTALL的标志 , "." 也将匹配包含换行符在内的任何字符 .
下面介绍一下 "*"
时间: 2024-10-07 07:10:54