精华内容
下载资源
问答
  • 1. re模块的使用过程 #coding=utf-8 # 导入re模块 import re # 使用match方法进行匹配操作 result = re.match(正则表达式,要匹配字符串) # 如果上一步匹配到数据的话,可以使用group方法来提取数据 result.group()...

    本篇博文移动至:正则---re模块的基础用法(re.match() /单个字符匹配/ 多个字符匹配)

     

     

    本篇博文移动至:正则---re模块的基础用法(re.match() /单个字符匹配/ 多个字符匹配)

     

     

    本篇博文移动至:正则---re模块的基础用法(re.match() /单个字符匹配/ 多个字符匹配)

     

     

    !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

     

     

    1. re模块的使用过程

        #coding=utf-8
        # 导入re模块
        import re
     
        # 使用match方法进行匹配操作
        result = re.match(正则表达式,要匹配的字符串)
     
        # 如果上一步匹配到数据的话,可以使用group方法来提取数据
        result.group()
     
     

    2. re模块示例(匹配以itcast开头的语句)

        #coding=utf-8
        import re
     
        result = re.match("itcast","itcast.cn) # match 第一个参数是需要匹配的字符串,第二个是源字符串
        result.group()
    运行结果为:
    itcast
     
     
     

    3. 说明

    • re.match() 能够匹配出以xxx开头的字符串
     
     

     

     

    匹配单个字符

    本小节,将要讲解正则表达式的单字符匹配
    字符 功能
    . 匹配任意1个字符(除了\n)
    [ ] 匹配[ ]中列举的字符
    \d 匹配数字,即0-9
    \D 匹配非数字,即不是数字
    \s 匹配空白,即 空格,tab键
    \S 匹配非空白
    \w 匹配单词字符,即a-z、A-Z、0-9、_
    \W 匹配非单词字符

     

     

    示例1:.

    #coding=utf-8
     
    import re
     
    ret = re.match(".","M")
    print(ret.group())
     
    ret = re.match("t.o","too")
    print(ret.group())
     
    ret = re.match("t.o","two")
    print(ret.group())
    运行结果:
    M
    too
    two
     
     
     

    示例2:[ ]

    #coding=utf-8
     
    import re
     
    # 大小写h都可以的情况
    ret = re.match("[hH]","hello Python")
    print(ret.group()) # h
    ret = re.match("[hH]","Hello Python")
    print(ret.group())                                                     # H
    ret = re.match("[hH]ello Python","Hello Python")
    print(ret.group())                                                     # Hello Python
     
    # 匹配0到9第一种写法
    ret = re.match("[0123456789]Hello Python","7Hello Python”) # 7Hello Python
    print(ret.group())
     
    # 匹配0到9第二种写法
    ret = re.match("[0-9]Hello Python","7Hello Python”)
    print(ret.group())                                                     # 7Hello Python
     
    ret = re.match("[0-3,5-9]Hello Python","7Hello Python")
    print(ret.group())                                                     # 7Hello Python
     
    # 下面这个正则不能够匹配到数字4,因此ret为None
    ret = re.match("[0-3,5-9]Hello Python","4Hello Python")
    print(ret.group())                                                     # None

     

     

     

    示例3:\d

    #coding=utf-8
     
    import re
     
    # 普通的匹配方式
    ret = re.match("嫦娥1号","嫦娥1号发射成功")
    print(ret.group())
     
     
    # 使用\d进行匹配
    ret = re.match("嫦娥\d号","嫦娥1号发射成功")
    print(ret.group())
     
    运行结果:
    嫦娥1

     

     

     

     

    匹配多个字符

    匹配多个字符的相关格式
    字符 功能
    * 匹配前一个字符出现0次或者无限次,即可有可无
    + 匹配前一个字符出现1次或者无限次,即至少有1次
    ? 匹配前一个字符出现1次或者0次,即要么有1次,要么没有
    {m} 匹配前一个字符出现m次
    {m,n} 匹配前一个字符出现从m到n次

     

     

    示例1:*

    需求:匹配出,一个字符串第一个字母为大写字符,后面都是小写字母并且这些小写字母可有可无
    #coding=utf-8
    import re
     
    ret = re.match("[A-Z][a-z]*","M")
    print(ret.group())
     
    ret = re.match("[A-Z][a-z]*","MnnM")
    print(ret.group())
     
    ret = re.match("[A-Z][a-z]*","Aabcdef")
    print(ret.group())
    运行结果:
    M
    Mnn
    Aabcdef

     

     

    示例2:+

    需求:匹配出,变量名是否有效
    备注:
    (1)变量名只能是 字母、数字或下划线的任意组合
    (2)变量名的第一个字符不能是数字
    (3)关键字不能声明为变量名,例如as / lambda/ python/ else /class /global/ 等等
     
    #coding=utf-8
    import re
     
    names = ["name1", "_name", "2_name", "__name__"]
     
    for name in names:
        ret = re.match("[a-zA-Z_]+[\w]*",name)
        if ret:
            print("变量名 %s 符合要求" % ret.group())
        else:
            print("变量名 %s 非法" % name)
    运行结果:
    变量名 name1 符合要求
    变量名 _name 符合要求
    变量名 2_name 非法
    变量名 __name__ 符合要求

     

     

    示例3:?

    需求:匹配出,0到99之间的数字
    #coding=utf-8
    import re
     
    ret = re.match("[1-9]?[0-9]","7")
    print(ret.group())
     
    ret = re.match("[1-9]?\d","33")
    print(ret.group())
     
    ret = re.match("[1-9]?\d","09")
    print(ret.group())
    运行结果:
    7
    33
    0 # 这个结果并不是想要的,利用$才能解决

     

     

    示例4:{m}

    需求:匹配出,8到20位的密码,可以是大小写英文字母、数字、下划线
    #coding=utf-8
    import re
     
    ret = re.match("[a-zA-Z0-9_]{6}","12a3g45678")
    print(ret.group())
     
    ret = re.match("[a-zA-Z0-9_]{8,20}","1ad12f23s34455ff66")
    print(ret.group())
    运行结果:
     
    12a3g4
    1ad12f23s34455ff66

     

     

    练一练

    题目1:匹配出163的邮箱地址,且@符号之前有4到20位,例如hello@163.com

    E_mail = hello_world@163.com

    Ret = re.math(‘[a-zA-Z0-9_]{4,20}@163.com’,E_mail)
     
     
    在正则中,点(.)表示任意一个字符,
    正则表达式如果写成”[/w]{4,20}@163.com$”,那hello_world@1633com也会被匹配出来
     
     
     
     
     
    展开全文
  • NLP-基于字符匹配的中文分词

    万次阅读 2020-10-08 12:55:20
    NLP-基于字符匹配的中文分词
    展开全文
  • 本题要求实现一个函数,对给定的一个字符串和两个字符,打印出给定字符串中从与第一个字符匹配的位置开始到与第二个字符匹配的位置之间的所有字符。 函数接口定义: char *match( char *s, char ch1, char ch2 ); ...

    本题要求实现一个函数,对给定的一个字符串和两个字符,打印出给定字符串中从与第一个字符匹配的位置开始到与第二个字符匹配的位置之间的所有字符。

    函数接口定义:

    char *match( char *s, char ch1, char ch2 );

    函数match应打印s中从ch1到ch2之间的所有字符,并且返回ch1的地址。

    裁判测试程序样例:

    在这里插入图片描述

    输入输出

    在这里插入图片描述

    c语言代码

    char *match( char *s, char ch1, char ch2 )
    {
        char a[MAXS]="",*p;//a字符数组是打印的ch1和ch2之间的字符,*p指针是返回ch1的地址
        int i=0,j=0;
        while((*(s+i)!=ch1)&&(*(s+i)!=0))//从第一个元素找起到ch1或字符串停止符'\0'停止
        {
            i++;
        }p=s+i;//p指针指向找到ch1或'\0'后s字符串后面的部分
        a[j]=*(s+i);//将ch1或'\0'给到a数组第一个元素------①
            j++;i++;
        while((*(s+i)!=0)&&(*(s+i)!=ch2))//找ch2或'\0'停止,期间复制中间字符给a数组
        {
            a[j]=*(s+i);
            j++;i++;
        }//---------②
        a[j]=*(s+i);//最后加上ch2或'\0'
       printf("%s\n",a);
        return p;
    }
    

    ①—②实际是do while循环
    灵活使用数组和指针,对相应字符串的表示方法、原理、结构需要一定的了解。
    在这里插入图片描述

    展开全文
  • eclipse 全字符匹配搜索

    千次阅读 2015-05-08 17:03:03
    在eclipse的默认的文件搜索(File Search)中,是没有全字符匹配(whole word)的选择的.但是很多情况下,我们需要全字符匹配搜索的. 没有全字符匹配搜索,会搜出一大堆的不想要的结果出来.如果项目工程代码中有 skill, ...

    在eclipse的默认的文件搜索(File Search)中,是没有全字符匹配(whole word)的选择的.但是很多情况下,我们需要全字符匹配搜索的.
    没有全字符匹配搜索,会搜出一大堆的不想要的结果出来.如果项目工程代码中有 skill, skillId, skillLeve,my_skill等这些变量,如果我要搜skill这个,但是skillId, skillLeve,my_skill这几个也会出现在搜索的结果中.这样搜索结果过多,达不到理想的目的.那怎么样才能全字符匹配搜索呢?
    我们看搜索选项中有正则表达式(Regular expression)的选项, 我们用正则表达过滤一下就可以了.我最初想到的是用([^a-zA-Z]),如([^a-zA-Z])skill([^a-zA-Z]),排除skill这个单词前后的字母.但后来发现写起来麻烦而且效果不是很理想.后来在johny.org上看到了更好的办法.就是用\b这个在正则表达式语法中是匹配单词边界.我们就可以写成\bskill\b用正则表达式搜就只搜出skill的了.

    参考johny.org: http://www.johny.org/2011/10/eclipse-whole-word-search-in-workspace/

    展开全文
  • mysql中的字符匹配查询

    千次阅读 2016-09-13 09:49:37
    1、like的字符匹配 (1)%百分号通配符,匹配任意长度的字符,包括零字符 (2)_下划线通配符,只匹配一个字符 2、正则表达式查询REGEXP   选项 说明 例子 示例 ...
  • 正则表达式的字符匹配(一)

    万次阅读 2018-04-11 21:00:32
    正则表达式的单字符匹配字符功能.匹配任意1个字符(除了\n)[ ]匹配[ ]中列举的字符\d匹配数字,即0-9\D匹配非数字,即不是数字\s匹配空白,即 空格,tab键,\n ,\r等等\S匹配非空白\w匹配单词字符,即a-z、A-Z、0-9...
  • 基于linux下的字符匹配

    千次阅读 2018-06-13 09:09:33
    字符匹配:建立文件: touch "fi le" "fiale" "fiAle" "fi?le" "fi6le"[[:alpha:]] 匹配单个字母 格式: rm -fr fi[[:alpha:]]le结果如下图所示:[[:lower:]]...
  • Oracle中匹配一个字段中有多个字符匹配的解决方法1、问题例子 1、问题例子 现在需要对表中的(如下图中红色框的字符串)字典码,转化成值。 如:D0801–> 虚假电话。 转化后的结果是 : 2、解决...
  • Bash 字符匹配

    千次阅读 2014-02-08 15:54:11
    Bash的字符匹配共有6种形式 Bash的字符匹配共有6种形式: 1. ${variable#pattern} 如果pattern匹配variable的开始部分,从variable的开始处删除字符直到第一个匹配的位置,包括匹配部分,返回剩余部分。 2....
  • MySQL数据表中带LIKE的字符匹配查询

    千次阅读 2016-10-19 19:40:38
    MySQL数据表中带LIKE的字符匹配查询 LIKE关键字可以匹配字符串是否相等。 如果字段的值与指定的字符串相匹配,则符合查询条件,该记录将被查询出来。如果与指定的字符串不匹配,则不符合查询条件。 基本的...
  • 在re模块中,任意字符匹配使用“.”(点)来表示, 在默认模式下,点匹配除了换行的任意字符。如果指定了搜索标记re.DOTALL ,它将匹配包括换行符的任意字符。关于搜索标记的含义请见《第11.2节 Python re模块函数概览...
  • 匹配双字节字符(包括汉字在内):[^\x00-\xff] 评注:可以用来计算字符串的长度(一个双字节字符长度计2,ASCII字符计1) 匹配空白行的正则表达式:\n\s*\r 评注:可以用来删除空白行 匹配HTML标记的正则表达式:&...
  • 在本题中,匹配是指字符串的所有字符匹配整个模式。例如,字符串"aaa"与模式"a.a"和"ab*ac*a"匹配,但是与"aa.a"和"ab*a"均不匹配 思路:情况非常复杂,利用递归思路,可以大大简化问题。其实,递归就是一步一步...
  • 在本题中,匹配是指字符串的所有字符匹配整个模式。例如,字符串"aaa"与模式"a.a"和"ab*ac*a"匹配,但是与"aa.a"和"ab*a"均不匹配 解法:每次从字符串里拿出一个字符和模式中的字符去匹配。先来分析如何匹配一个...
  • Java Pattern和Matcher字符匹配详解

    万次阅读 多人点赞 2017-09-02 21:40:33
    Pattern类定义  public final class Pattern extends Object implementsSerializable正则表达式的编译表示形式。...然后,可将得到的模式用于创建Matcher对象,依照正则表达式,该对象可以与任意字符序列匹配
  • Oracle 字符匹配

    千次阅读 2009-09-18 22:37:00
    百分号 0个或多个字符下划线 匹配单个任意字符 ESCAPE Clause ExampleYou can include the actual characters "%" or "_" in the pattern by using the ESCAPE clause, which identifies the escape character....
  • 正则表达式之特殊字符匹配

    千次阅读 2017-12-27 16:44:23
    (,[,{这些括号在正则中有特殊的含义,当需要匹配字符串包含的这些特殊字符时,需要对这些特殊字符进行转义 一般'\(','\[','\{'即可匹配相应括号,或者是'\\(','\\[','\\{'即可 如:hive中的regexp_extract()...
  • 正则表达式是匹配模式,要么匹配字符,要么匹配位置。请记住这句话。 然而关于正则如何匹配字符的学习,大部分人都觉得这块比较杂乱。 毕竟元字符太多了,看起来没有系统性,不好记。本文就解决这个问题。 内容...
  • 比如 str='地铁16号线',我的 list=['6号线','16号线'] 然后我要匹配的是16号线而不是6号线,请问如何做?
  • 匹配前一个字符出现1次或者0次,即要么有1次,要么没有{m}匹配前一个字符出现m次{m,}匹配前一个字符至少出现m次{m,n}匹配前一个字符出现从m到n次示例1:*需求:匹配出,一个字符串第一个字母为大小字符,后面都是...
  • lua中字符匹配替换

    万次阅读 2014-08-28 15:36:37
    基本作用是用来查找匹配模式的串,并将使用替换串其替换掉:  s = string.gsub("Lua is good", "good", "bad?")  print(s) --> Lua is bad string.gsub 的第二个返回值表示进行替换操作的次数。例如, ...
  • 正则表达式字符匹配

    千次阅读 2006-02-16 11:51:00
    最简单的正则表达式是一个单独的普通字符,可以匹配所搜索字符串中的该字符本身。例如,单字符模式 A 可以匹配所搜索字符串中任何位置出现的字母 A。这里有一些单字符正则表达式模式的示例:/a/ /7/ /M/等价的 ...
  • 最近抽时间大概了解了一下这方面的知识,整理了一下自己的一些笔记,文中示例通过vim编辑器来演示,匹配到的字符为黄色高亮显示,并在下面注明了显示结果。 首先,正则表达式的定义:一些用来匹配和处理文本的...
  • mysql单字段任意字符匹配模糊查询

    千次阅读 2016-09-22 08:48:28
    问题描述给出字符串String str=”高明亮”(该字符串由前台传递,动态变化);查出用户表中用户名包含以上字符串任意字符的所有用户信息。可能的思路 错误思路一:只会查询出同时包含着三个字符的用户名。select * from...
  • Oracle - Like(字符匹配、模糊查询)

    千次阅读 2019-04-22 21:23:40
    求姓名是以字符 ‘张’ 打头的学生信息。 SELECT * FROM STUDENT WHERE SNAME LIKE '张%'; >>>求姓名中含有字符‘张’的学生信息。 SELECT * FROM STUDENT WHERE SNAME LIKE '%张%'; >>>...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 121,449
精华内容 48,579
关键字:

字符匹配