Regular expression
正则表达式使用单个字符串来描述、匹配一系列符合某个句法规则的字符串。通过使用正则表达式,可以:
以下用Regular expression
作为例子
字符 | 用法 | 例子 |
---|---|---|
* |
匹配前面子表达式0次或多次 | es* 匹配 e 或ess |
+ |
匹配前面子表达式一次或多次 | es+ 匹配es 或ess ,但不匹配e |
. |
匹配除换行符以外的任意字符 | .e 匹配Re 和re ,表示:任意字符后面跟着一个字母e |
? |
用来表示前一个字符是可选的,匹配前面的子表达式零次或一次 | es? 匹配e 或es ,但不匹配ess |
^ |
检查匹配字符是否是起始字符 | ^re 匹配regular 开头的re ,而不匹配expression 中的,这个例子我们忽略大小写问题 |
$ |
检查匹配字符是否是最后一个字符 | r$ 匹配regular 结尾的r ,不匹配其他的r |
( ) |
按照确切的顺序匹配括号内的字符 | (re) 只匹配re ,不匹配其他 |
[ ] |
匹配方括号中包含的任意字符,无顺序要求 | [rR] 既匹配大写,也匹配小写 |
[^ ] |
匹配方括号中不包含的任意字符,无顺序要求 | [^rR] 会匹配到egular expession |
{n,m} |
匹配括号前字符至少 n 次,但是不超过 m 次 | 9{2,4} 表示匹配至少2位数字但不超过4位的数字9 |
\ |
转义字符,用来将下一个字符转义 | \$ 就是表示原本的符号$ |
可以将较为复杂的匹配语句简写
字符 | 用法 |
---|---|
\w |
匹配所有字母和数字的字符: [a-zA-Z0-9_] |
\W |
匹配非字母和数字的字符: [^\w] |
\d |
匹配数字: [0-9] |
\D |
匹配非数字: [^\d] |
|
的或分支功能和一些语言类似,正则表达式可以使用|
来表示或。可以用(r|R)e
来实现匹配大小写,或者使用(c|m|f)at
来实现同时匹配cat
、mat
、fat
。
?
实现可选匹配使用(c|m|f)?at
来实现同时匹配cat
、mat
、fat
和at
,即问号前的内容是可不匹配的。
字符 | 用法 |
---|---|
\f |
匹配一个换页符。 |
\n |
匹配一个换行符。 |
\r |
匹配一个回车符。 |
\s |
匹配任何空白字符,包括空格、制表符、换页符等等。注意 Unicode 正则表达式会匹配全角空格符。 |
\S |
匹配任何非空格字符。 |
\t |
匹配一个制表符。 |
\v |
匹配一个垂直制表符。 |
\b |
匹配一个单词边界,即字与空格间的位置。 |
(\-|\+)?\d+(\.\d+)?
The number was 9.9997 but we rounded it off to 10 =>
9.9997
、10
[A-Za-z]+
The number was 9.9997 but we rounded it off to 10 =>
The
、number
、was
、but
、we
、rounded
、it
、off
、to
# 统计关键词在文件中的数量
import re
file = open("test.log").read()
erros_res = len(re.findall("error",file))
print(erros_res)
!\[.*\]\((.*)\)
本网站文章版权均为本人所有,未经同意不得私自搬运复制,欢迎注明引用出处的合理转载,图片转载请留言。文章内容仅用于技术研究和探索,不得用于违法目的。