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格式

  • 相关阅读:
    codeforces C. Cows and Sequence 解题报告
    codeforces A. Point on Spiral 解题报告
    codeforces C. New Year Ratings Change 解题报告
    codeforces A. Fox and Box Accumulation 解题报告
    codeforces B. Multitasking 解题报告
    git命令使用
    shell简单使用
    知识束缚
    php 调用系统命令
    数据传输方式(前端与后台 ,后台与后台)
  • 原文地址:https://www.cnblogs.com/yuhuang/p/12851594.html
Copyright © 2011-2022 走看看