th-lyc
import re
#name = \'tooooooootwettenghu\'
#name = \'tenghu\'
#name = \'187222222220\'
#name = \'你sss好\'
#name = \'你_好\'
#name = \'staudy in 美国 休斯顿大学\'
name = \'xxx生出2002年10月3号\'
#name_1 = \'^t.*u$\'
#name_1 = \'.*?(t.*?t).*\' ##增加? 让t字符不再贪婪更多
#name_1 = \'.*.(t.+u)\'  ## 贪婪匹配,t和t 之间任意字符至少出现一次 输出结果 ttt
#name_1 = \'.*.?(t.{8}t).*\' ## 两个t之间 里面任意{N}个字符
#name_1 = \'(tenghu1|tenghu)\' ##  \'|\'  表示或的意思
#name_1 = \'(1[8654][0-9]{9})\' #[]表示匹配里面的任意个字符,[^1]表示 非1
#name_1 = \'(你\S+好)\'
#name_1 = \'(你\w好)\' ### \\w 等同中括号[A-Za-z0-9_] \W相反
#name_1 = \'.*?([\s\u4E00-\u9FA5]+大学)\' ##[\u4E00-\u9FA5] 为固定格式匹配汉子1个
name_1 = \'.*?(\d+年\d+月\d+号)\'
\'\'\'
^表示必须以 t开头
.表示可以任意个字符
*表示可以匹配前面的.任意多次.
$表示以什么结尾的 这边用u
? 非贪婪匹配,默认是从后往前匹配的
+ 是任意个字符匹配,至少出现一次
[]表示匹配里面的任意个字符,[^1]表示 非1
| 表示两边任意满足一个就匹配
在多个括弧(())  先优先匹配外层再内层,主要用于提取子字符串等
{1}匹配一次,{2} 2次,{2,}大于等于2次,{2,5} 最小2 最大5次
\s 匹配字符串之间的空格 \S+只要不是空格都可以匹配到 + 表示匹配一个以上
\w 等同中括号[A-Za-z0-9_] 表示大写的A-Z 小写的a-z数字0-9 和下划线
\W  和上面中括号里面的内容相反。 都只能容纳一个占位符
[\u4E00-\u9FA5]为固定格式unicode类型,代表匹配任意一个汉子
\'\'\'
match_obj =  re.match(name_1,name)
if match_obj:
    print(match_obj.group(1))
\'\'\'group(1)表明匹配name_1里的()值
   gropu(2),在多个() 里面是 由外到里匹配的 ,

\'\'\'

 


分类:

技术点:

相关文章: