• 四、正则表达式使用


    1、正则表达式:regex(reg:regular ex:express)
    1)是一门独立的学科;
    2)是一种字符模型,专门做字符串格式匹配的。例如:注册用户邮箱时,被提醒邮箱格式不正确,底层其实用的就是正则表达式;
    3)正则表达式是通用的。例如正则表达式“^a{2}$”表示2个a字符,等同于“aa”   
        正则表达式通常以^字符开始,以¥字符结束    a{2}称为正则表达式;表示2个a字符,等同于“aa”
    2、常用的正则表达式符号

        ^      字符串的开始
        $      字符串的结束
        s      空白
        +      出现1-N次
        *      出现0-N次
        {2,5} 出现[2-5]次    
        ?      出现至少1次
        [0-9] 0-9的数字任意出现一个
        [0-9a-zA-Z]{3,}  0-9a-zA-Z 之前的字符至少出现3次    
    View Code

    3、所有正则表达式符号

    描述
    ^ 匹配一个字符串的开始。如果与“m” 的match_parameter一起使用,则匹配表达式中任何位置的行的开头。
    $ 匹配字符串的结尾。如果与“m” 的match_parameter一起使用,则匹配表达式中任何位置的行的末尾。
    * 匹配零个或多个。
    + 匹配一个或多个出现。
    匹配零次或一次出现。
    匹配任何字符,除了空。
    | 用“OR”来指定多个选项。
    [] 用于指定一个匹配列表,您尝试匹配列表中的任何一个字符。
    [^] 用于指定一个不匹配的列表,您尝试匹配除列表中的字符以外的任何字符。
    () 用于将表达式分组为一个子表达式。
    {M} 匹配m次。
    {M,} 至少匹配m次。
    {M,N} 至少匹配m次,但不多于n次。
    n n是1到9之间的数字。在遇到 n之前匹配在()内找到的第n个子表达式。
    [..] 匹配一个可以多于一个字符的整理元素。
    [:] 匹配字符类。
    [==] 匹配等价类。
    d 匹配一个数字字符。
    D 匹配一个非数字字符。
    w 匹配包括下划线的任何单词字符。
    W 匹配任何非单词字符。
    s 匹配任何空白字符,包括空格,制表符,换页符等等。
    S 匹配任何非空白字符。
    A 在换行符之前匹配字符串的开头或匹配字符串的末尾。
     匹配字符串的末尾。
    *? 匹配前面的模式零次或多次发生。
    +? 匹配前面的模式一个或多个事件。
    ?? 匹配前面的模式零次或一次出现。
    {N}? 匹配前面的模式n次。
    {N,}? 匹配前面的模式至少n次。
    {N,M}? 匹配前面的模式至少n次,但不超过m次。

    4、正则表达式的使用

    4.1 js中正则表达式的创建和使用    
    创建正则表达式对象的两种方法
    1)var regexp=/正则表达式/flag;--常用
    2)var regexp=new RegExp("正则表达式","flag");    
    备注:flag可选值:i(忽略大小写)、g(当前行所有数据)、m(支持多行搜索),igm可以合起来使用
    语法格式
            var regexp=/正则表达式/;
            var retValue=regexp.test(字符串);//返回值为true或者false
    简单示例

    示例1:        
    var s="  hello  def  ";
    String.prototype.trim=function(){
        return this.replace("/^s+/","9").replace('/s*&/',"0");
    };
    s.trim();
    alert("-->"+s+"<--");
    
    示列2:
    替代符校验:若target为@I、@i、@N、@n、@E、@e中的任一个,则返回true
    function isSurrogate(target){
        var reg =  /(^@I$)|(^@i$)|(^@N$)|(^@n$)|(^@E$)|(^@e$)/;
        return reg.test(target);
    }
    
    示例3:
    账号校验:
    1.账号中含有除数字、字母、“-”之外的字符,全角字符。
    2.账号字段不得全部为连续相同的数字
    function legalAccount(target){
        var reg1 = /^w*$/;
        var reg2 = /(^0+$)|(^1+$)|(^2+$)|(^3+$)|(^4+$)|(^5+$)|(^6+$)|(^7+$)|(^8+$)|(^9+$)/;
        return reg1.test(target)&&(!reg2.test(target));
    }
    View Code

    4.2 Oracle中正则表达式的使用

    可参看博文:

    https://www.cnblogs.com/lxl57610/p/8227599.html

    https://www.cnblogs.com/xhj123/p/6032683.html

    http://www.runoob.com/java/java-regular-expressions.html

    细水长流,打磨濡染,渐趋极致,才是一个人最好的状态。
  • 相关阅读:
    操作串口通信类(IO.Ports)SerialPort
    TreeView的数据源绑定—采用sqlite作为数据源,实现对treeview控件进行增删改查
    (Easy)打开指定的文件
    TreeView的数据源绑定—采用XML作为数据源,实现对treeview进行增删改查,之后回写XML文档
    linux sort,uniq,cut,wc命令详解
    轻快的VIM(六):恢复
    Python 常用模块大全(整理)
    定位oracle实例的当前跟踪文件名及路径
    查看session io
    查看pga使用
  • 原文地址:https://www.cnblogs.com/jiarui-zjb/p/6207491.html
Copyright © 2020-2023  润新知