美文网首页
Java基础进阶 正则的详解

Java基础进阶 正则的详解

作者: Sun晨淏 | 来源:发表于2019-05-30 14:22 被阅读0次

                                            正则的基本用法

正则表达式用来干啥:

            处理字符串

            相当于过滤的性质,找到符合自己要求的字符集

怎么样去创建一个正则表达式:

            1.例如:var  newArr = /条件/修饰符(修饰符可选)

              修饰符:g全局匹配从匹配到的一个结果开始继续往后进行匹配,直到字符串结束

               i不区分大小写匹配

               m多行匹配

            2.new RegExp(‘条件’,’修饰符’);  regualar exporession(缩写 new RegExp)

                例如:var  newArr = ‘字符串’;

                           var  oneArr  = newArr.replace(new RegExp(/条件/修饰符),‘替换的元素’);

用法:

    (1)正则对象.exec(字符串)

            如果未找到符合正则匹配模式的字符集则返回null

            如果找到则返回一个数组

            下标为0的元素即匹配到的字符集index即此字符集的起始下标input原字符串

            例如:var newArr = '字符串';

                        var reg = /正则/;

                        var str = reg.exec(newArr);

    (2)正则对象.test(str)

            返回一个boolean值

            字符串中有符合正则匹配模式的字符集返回true否则返回false

            例如:var newArr = '字符串';

                        var reg = /正则/;

                        var str = reg.test(newArr);

    (3)字符串.replace(正则,’我要替换的元素’)

            例如:var newArr = '字符串';

                        var reg = newArr.replace(/条件/修饰符,‘要替换的元素’)

    (4)字符串.search(reg)如果匹配到了字符集,则返回该字符集的起始下标

              例如:var newArr = '字符串';

                        var reg = /正则/;

                        var str = newArr .search(reg);

       (5)字符串.match(reg)

                如果没有匹配到目标字符集返回null

                如果匹配到了一个字符集则返回数组下标为0的元素即匹配到的字符集

                index即此字符集的起始下标input原字符串

                如果匹配到了多个字符集则返回匹配到的字符集组成的数组

                例如:var newArr = '字符串';

                           var reg = /正则/;

                            var str = newArr.match(reg)

正则/文本字符char本意字符

    元字符:

        (1)匹配次数

                    1) {number}匹配前面的字符重复number次

                    2){num1,num2}匹配前面的字符重复num1到num2次

                    3)*匹配前面的字符重复0到正无穷次

                    4)+匹配前面的字符重复1到正无穷次

                    5)?匹配前面的字符0到1次

                    极限条件下得到的结果包括字符串的结束符

       (2)集合

                    []匹配中括弧中的一个字符即可

        (3)分组

                    ()改变模式的优先级

        (4)锚定字符

                    ^锚定开始位置

                    $锚定结束位置

                    ^$空行

                    ^sdfas$单行模式下,整个字符串只能有这一个字符串多行模式下是一行只能有这一个字符串

        (5)文本字符集的固有写法

                    \d(0-9)代表数字的集合

                    \D代表非数字的集合

                    \w(A-Za-z0-9_)所有的集合

                    \W(^A-Za-z0-9_)非他们

                    \s匹配空格 空白 制表符 换页符

                    .匹配任意单个字符

            (6) \转义符

                    1)将文本字符转义为其他元字符

                    2)将元字符转义为字符本身

        (7)贪婪模式

                    在一种模式下,正则会尽可能的取长度长的结果未结果

                    使用形式在数量限制元字符后面追加?

            (8) 向后查找 (?<= xxx ) 匹配xxx之后的内容  不包含xxx

            (9) 向前查找 (?= xxx ) 匹配xxx之前的内容,不包含xxx

相关文章

网友评论

      本文标题:Java基础进阶 正则的详解

      本文链接:https://www.haomeiwen.com/subject/hitmtctx.html