• 正则表达式 我遇到的




    语法



    小括号会被无视
    所以经常用来使表达式更方便阅读

    关键字 :
    ?

    所以如果要搜索 "?" , 需要转义 -- >   ?

    "换行" 也需要转义

    s+
    匹配至少一个( 一个或多个 )空白字符 因为 +

    s 表示空白字符。包括,空格,制表符等
    “ ” 只表示1个空格 , 在 idea 里
    s* 表示若干个空格(可以是0个) , 因为 *
    如果就1个呢?
    [ ]+ 只表示多个空格



    例子  我遇到的


    /?(.+)/
    以 ? 开头 , 后面匹配任意东西


    /{{(.+?)}}/g
    {
    可以改写为
    /({)({)(.+?)(})(})/g

    /{{(.+?)}}/g完整的意思就是:在全部范围内查找匹配前后有两组花括号的字符串.
    以下是拆解 :


    最前面的“/”与最后面的“/”是分隔符,表示正则表达式的开始与结束.

    g  找出所有符合正则表达式的
    “g”  表示在正则表达式中使用的 global(全局)的状态
    也被称为全局匹配
    将查找所有符合的项,而不仅仅是第一个
    【相关的标志还有i(ignoreCase,表示忽略大小写)、m(multiline,表示允许跨行)】

    { 左括号

    然后我们再来看中间的主体部分:{{(.+?)}}花括号{}是正则里的限定符.但是我们这里是要找字符串里的花括号,所以前面加个“”来表示是要找字符的花括号.“{{”“}}”就是找前后两组花括号.

    “.”表示任意字符
    “+”表示前面表达式一次乃至多次.
    “?”表示匹配模式是非贪婪的


    例如:“{{}}”、“{{asdfasdfasdf56745}}”、“{{yuyuy#$%8787 9+_)(*)87 }}”

    }

    txt 正则表达式 替换掉所有换行
    不是用正则 , 直接替换掉win的 /r/n
    https://jingyan.baidu.com/article/922554464a2a26851648f408.html


    清晰的写法 : 尽量用上左右小括号


    以 1 开头的行
    ^(1)
    用这个正则搜索如下文本 :
    1 这行被选中
    21

    不以 1 开头的行
    ^(?!1)
    用这个正则搜索如下文本 :
    1
    21 这行被选中

    不以 "    SocketInputStream" 开头 , 有 "input = null;"  的行
    ^(?!    SocketInputStream)(.*)(input = null;)
    空格直接用 , 不需要数一数 , 再手动换成 s
    分行不用转义

    不以 "    SocketInputStream" 开头 , 有 "input = null;"  的行
    ^(    SocketInputStream)(.*)(input = null;)

    不以 "bc结尾
    (?<!bc)$

    匹配除了换行以外的字符, 1个和以上
    .+

    由1个或多个小写字母组成,但不以bc结尾的字符串,就可以这样写^[a-z]+(?<!bc)$

    (Dog){3}
    匹配字符串   DogDogDog











  • 相关阅读:
    Laravel 框架
    tp5
    jq关于对象类型的判断
    简易的 js 留言板
    学习任务
    实验报告:指针与地址
    C语言数据类型
    嗯,关于 nanxI 的50条~(算是自我介绍吧)
    初学C语言
    dropload.js
  • 原文地址:https://www.cnblogs.com/xiaoCong2016/p/8607864.html
Copyright © 2020-2023  润新知