regex = '^b.*'
意思是:^ →以b开头, .→任意字符, *→前边的字符可以重复任意多遍
即: 以b开头,b后边可以是任意字符,且字符数量不限
re.match(pattern,line)
第一个参数是符合条件的正则表达式, 第二个参数是待查找的字符串
regex = 'h$'
表示以h结尾的字符串
?
表示非贪婪
贪婪的意思就是说会一直找到最后一个符合条件的值, 而非贪婪的意思是找到第一个就停止
()
表示取出一串字符串符合条件的子串
+
表示+前面的字符至少出现一次
{1,6} #一到六次
{2} #两次
{2,} #至少两次
表示前边的字符出现的次数, 例如: 一到六次
|
line = "boby123"
regex_str = "(bobby|boby)123"
| 表示或的意思, 但要在外面加括号, 这样返回的是boby
如果想要返回boby123 则需要在外面再加一层括号
[]
line = "boby123"
regex_str = "[abcd]oby123"
表示只要满足[]内的任何一个字符即可
[0-9]
[]里面还可写区间, 表示满足0-9的数字即可
[^1]
表示不等于1即可, ^ 在这里表示 非 的意思
另外, []里面的. 和* 等不再表示任意字符的意思, 而仅仅就是. 和 * 的含义
\s #表示空格
\S #表示非空格(仅表示一个字符, 如果中间出现两个非空格字符也是不行的, 如果想要满足, 在后面加一个+即可, 表示重复非零多次)
\w #跟[A-Za-z0-9_]的含义是一样的
\W #即跟\w相反
? 的含义可以简单理解为从左向右找, 即非贪婪, 而如果不加? 则可以理解为从右向左找, 即贪婪
表示只要是汉字就可以, 且仅表示一个字符
\d #表示数字