• 爬虫 --正则表达式


    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 = '.*?([su4E00-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),在多个() 里面是 由外到里匹配的 ,
    
    '''
    
    
  • 相关阅读:
    字王20年
    [转]Birdfont 2.10 发布,字体编辑器
    vs2013编译boost库
    c++ 完成端口资料
    获取输入法输入内容及后选项的钩子
    unicode string和ansi string的转换函数及获取程序运行路径的代码
    c++实现输入法窗口自定义的代码
    在固定长方形里产生渐变
    监听某个div或其它标签的大小改变来执行相应的处理
    64位SqlServer通过链接服务器与32位oracle通讯
  • 原文地址:https://www.cnblogs.com/th-lyc/p/8746080.html
Copyright © 2020-2023  润新知