zoukankan      html  css  js  c++  java
  • 正则表达式(2)

     一,提取文本信息

    egrep是返回的是匹配的位置,而不是匹配字符串本身。egrep返回在检查正则表达式之前会把换行符给去掉

    如果是匹配一些与元字符相同的字符,但是要使他没有特殊意义,则要用""放在这些字符的前面,才能表示一般含义

    ^pepple --表示匹配以people行开头的   $people---表示匹配以people行开头的   [^....]----匹配除括号内容里以外的

    元字符:"." 可以匹配任意字符的字符组简写  如要匹配09-02-1或09.02.1或09/02/01

      正则表达式  “09[- . /]02[- . /]01”   其中[- . /]这里面的符号不是元字符,因为在字符组内部   

      正则表达式  “09.02.01”这和上面的正则表达式一个意思,此时的“.”表示元字符,能匹配任意字符

    “|”表示或的意思  

    例如:gr(e|a)y即可匹配grey 又可以匹配gray

    egrep的命令参数行“-i”表示进行忽略大小写的匹配

    egrep-i"^(From|subject|date):"   -i写在正则表达式的前面

    egrep "/<"匹配的是单词的开头,“/>”匹配单词的结尾:期望匹配的单词在在另一个但这次之中

    egrep“/<cat/>”以cat开始  并以cat结尾结尾的单词,

    ?表示可选项

    例如匹配color和colour的匹配,可写成“(colou?r)”  这个u是可选或者可不选

    s 表示空白字符 

    + 表示紧邻的元素出现一次或多次,* 表示之前紧邻的元素出现任意多次或者不出现

    例如:匹配14

    可用  "[0-9]+"

    括号及反向应用

    括号的三种用途:1)限制多选项的范围   2)将若干字符组合为一个单元,受问号或星号之类量词的作用  3)用于反向引用

    egrep的反向引用

    例如:我们要匹配一个任意的单词,接下来要检查后面的单词是否和它一样

    正则表达式:<([A-Za-z]+)*+1> 表示的以第一个匹配的单词开始,到最后一个出现和第一个单词一样的单词结束。  "1" "2" "3"等来表示第一,第二,第三组括号匹配的文本。

    “([a-z])([0-9])12”。括号是按照开括号“(”从左至右的出现顺序进行的,所以1([a-z])  代表2([0-9])

    perl中 $var=~m/..../   ~m表示开始匹配的意思,m(match)

     二,替换文本信息(perl)

    在perl 中 $var=~s/.../.../ 可以改变 $var中的文本

    eg:$var=~s/Jeff/Jeffery/i ;  讲文中的jeff单词替换为Jeffery,忽略单词的大小写    

    /gs是一个全局替换

    当有时候我们需要得到一个修正的浮点数的时候,$price=表示修正的数

    $price=~s/(.dd[1-9]?d*)/$1/

    用$1来替代修饰前面所匹配的数,修饰的结果是如果第三位是0,小数后面就保留两位,小数后第三位是非0,就保留三位,后面的数不要

    .* 表示用来表示一组任何字符

     R  grep, grepl, regexpr, gregexpr:http://blog.csdn.net/duqi_yc/article/details/9817243

  • 相关阅读:
    Delphi 调用DLL TStream作为参数
    Delphi 退出时注销子窗口应注意的问题
    Excel文件转换成用友实施工具Excel格式
    Delphi Function 返回值忘记默认赋值的一些问题
    vscode 安装golang插件方法
    git merge
    vant ui 双向输入框禁止手机键盘弹出
    回调地狱
    vue 数组对象循环添加一个属性 在页面上动态渲染时更改属性值
    Windows下安装Redis,并设置开机自动启动
  • 原文地址:https://www.cnblogs.com/yupeter007/p/5493306.html
Copyright © 2011-2022 走看看