zoukankan      html  css  js  c++  java
  • 【正则表达式】【第一节】【正则表达式基本知识】

    正则表达式是一种文本模式,包括普通字符和特殊字符(称为“元字符”)

    普通字符:a-z之间的字母

    元字符:

    ^:^会匹配行或者字符串的起始位置,或者文档的起始位置

    $:$会匹配行或者字符串的结尾

    被匹配的字符必须是以This开头有空格也不行,必须以Regex结尾,也不能有空格或者其他字符

    :匹配单词边界,如“This is Regex”匹配单独的单词“is”正则就要写成“is

    d:匹配数字,0737-5686123,正则:^0ddd-ddddddd

    w”:匹配字母,数字,下划线,如“a2344_yya”,正则为“w+”,这里的“+”字符为一个量词代表重复的次数

    s”:匹配空格,例如“a b c”正则“wswsw”一个字符后跟一个空格,如有多个空格直接写成“s+

    .”:匹配除了换行符以外的任何字符

    注意:

    *表示任意个字符(包括0个)

    +表示至少一个字符

    ?表示0个或1个字符

    {n}表示n个字符

    {n,}表示重复n次或更多次

    {n,m}b表示nm个字符

    通过在 *+ 或 ? 限定符之后放置 ?,该表达式从"贪婪"表达式转换为"非贪婪"表达式或者最小匹配

    d{3}s+d{3,8}

    d{3}匹配3个数字,例如“010

    s匹配一个空格,s+表示至少有一个空格,例如“ ”

    d{3,8}表示3-8个数字,例如“122222

    -”是特殊字符,在正则表达式中,要用“”转义,“000-12345”的正则是“d{3}-d{3-8}

    正则进阶

    要做更精确的匹配,可以用[ ]表示范围,比如:

    [0-9a-zA-Z\_]可以匹配一个数字、字母或者下划线

    [a-zA-Z\_][0-9a-zA-Z\_]*表示匹配由字母或者下划线开头,后接任意个由一个数字、字母或者下划线组成的字符串

    A|B 可以匹配A或者B,所以(p|Python可以匹配“python”或者“Python

    由于Python中的字符串本身也用转义,因此强烈建议使用Pythonr前缀,就不用考虑转义问题啦

    正则表达式的匹配方法

    test=“用户输入的字符串”
    if re.match(r“正则表达式”,test):
        Print(“OK”)
    else:
        Print(“failed”)

    正则表达式的用途

    1.re.match进行判断

    test="010-11112abc 123"
    base=r"d{3}-d{3,8}w{3}sd{3}"
    if re.match(base,test):
         print("OK")
    else:
         print("Failed")

    2.re.split切割字符串

    传统方法切割字符

    value=("a  b    c").split(" ")

    print(value)    #['a', '', 'b', '', '', '', 'c']

    如上所示,不能自动识别空格

    使用re.split方法

    value=re.split(r"[s\,]+","a,b c")

    print(value)    #将以一个空格或“,”号的分开,输出list格式

  • 相关阅读:
    Activity的启动模式
    Assets和Raw区别
    手机自动跑脚本
    系统隐式 Intent
    判断是否为小屏幕设备
    C语言数组初始化方式
    windows10环境下gcc环境变量的配置
    UE4.22编辑器界面操控设置(4)
    windows10下JDK9的环境配置
    分布式ID生成解决方案之snowflake(雪花算法)
  • 原文地址:https://www.cnblogs.com/yuhuang/p/12851594.html
Copyright © 2011-2022 走看看