正则表达式,向前,向后匹配,向前向后不匹配
1 import re
2 def testPrevPostMatch():
3 # post match: (?=xxx)
4 # post non-match: (?!xxx)
5 # prev match: (?<=xxx)
6 # prev non-match: (?<!xxx)
7
8 #note that input string is:
9 #src=“http://b101.photo.store.qq.com/psb?/V10ppwxs00XiXU/5dbOIlYaLYVPWOz*1nHYeSFq09Z5rys72RIJszCsWV8!/b/YYUOOzy3HQAAYqsTPjz7HQAA”
特殊字符\b \B
https://blog.csdn.net/qq_39208536/article/details/81136248
特殊字符\b 和\B 可以用来匹配字符边界。而两者的区别在于\b 将用于匹配一个单词的边 界,这意味着如果一个模式必须位于单词的起始部分,就不管该单词前面(单词位于字符串 中间)是否有任何字符(单词位于行首)。同样,\B 将匹配出现在一个单词中间的模式(即, 不是单词边界)。下面为一些示例。
正则表达式模式 | 匹配的字符串 |
at | home | at、home |
r2d2 | c3po | r2d2、c3po |
bat | bet | bit | bat、bet、bit |
f.o | 匹配在字母“f”和“o”之间的任意一个字符;例如 fao、f9o、f#o 等 |
.. | 任意两个字符 |
.end | 匹配在字符串 end 之前的任意一个字符 |
^From | 任何以 From 作为起始的字符串 |
/bin/tcsh$ | 任何以/bin/tcsh 作为结尾的字符串 |
^Subject: hi$ | 任何由单独的字符串 Subject: hi 构成的字符串 |
特殊字符\b 和\B 可以用来匹配字符边界 | |
the | 任何包含 the 的字符串 |
\bthe | 任何以 the 开始的字符串 |
\bthe\b | 仅仅匹配单词 the |
\Bthe | 任何包含但并不以 the 作为起始的字符串 |
创建字符集 | |
b[aeiu]t | bat、bet、bit、but |
[cr][23][dp][o2] | 一个包含四个字符的字符串,第一个字符是“c”或“r”,然后是“2”或“3” ,后面 是“d”或“p”,最后要么是“o”要么是“2”。例如,c2do、r3p2、 r2d2、c3po 等 |
限定范围和否定如果脱字符(^)紧跟在左方括号后面,这个符号就表示不匹配给定字符 集中的任何一个字符。 | |
z.[0-9] | 字母“z”后面跟着任何一个字符,然后跟着一个数字 |
[r-u][env-y][us] | 字母“r”、“s”、“t”或者“u”后面跟着“e”、“n”、“v”、“w”、“x”或者“y”, 然后跟着“u”或者“s” |
[^aeiou] | 一个非元音字符 |
[^\t\n] | 不匹配制表符或者\n |
[“-a] | 在一个 ASCII 系统中,所有字符都位于“”和“a”之间,即 34~97 之间 |