【问题标题】:Regex change uppercase to lowercase in anchor tag正则表达式在锚标记中将大写更改为小写
【发布时间】:2019-05-06 02:48:39
【问题描述】:

我想要任何可以将所有大写变为小写的正则表达式 例如输入 <a href="/Category">Text</a> <a href="/Abc-XYZ">Text</a> <a href='/CategorY/'>Text</a>

输出是 <a href="/category">Text</a> <a href="/abc-xyz">Text</a> <a href='/category/'>Text</a>

我正在尝试将&lt;a(\w*)&lt;\/a&gt; 转换为\L$1 但没有得到预期结果

【问题讨论】:

    标签: regex string notepad++


    【解决方案1】:

    搜索:(&lt;a href=['"])([^'"]+)(.*)

    替换:$1\L$2\E$3

    关键是使用\E 来停止大小写替换。我不熟悉工具记事本++。不知道怎么换。所以我只是给出了匹配整行的模式。可以缩短。

    【讨论】:

      【解决方案2】:

      查找直到第一个>(惰性量词)之前的所有字符:&lt;a(.*?)&gt;

      将所有匹配的组替换为小写:&lt;a\L$1&gt;

      这是working demo(也在notepad++中测试过)

      【讨论】:

        【解决方案3】:
        • Ctrl+H
        • 查找内容:(?&lt;=href=['"])[^'"]+
        • 替换为:\L$0
        • 取消选中匹配大小写
        • 检查环绕
        • 检查正则表达式
        • 全部替换

        说明:

        (?<=            # start lookbehind, zero-length assertion, makes sure we have before:
            href=['"]   # href= followed by single or double quote
        )               # end lookbehind
        [^'"]+          # 1 or more any character that is not single or double quote
        

        替换:

        \L      # lowercase the following
        $0      # content of group 0 (i.e. the whole match)
        

        给定示例的结果:

        href="/category">Text</a> 
        <a href="/abc-xyz">Text</a>
        <a href='/category/'>Text</a>
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2013-07-24
          • 1970-01-01
          • 2011-06-21
          • 2011-02-01
          • 2013-09-09
          • 2019-05-15
          • 2015-05-23
          • 2018-01-19
          相关资源
          最近更新 更多