【问题标题】: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>
我正在尝试将<a(\w*)<\/a> 转换为\L$1 但没有得到预期结果
【问题讨论】:
标签:
regex
string
notepad++
【解决方案1】:
搜索:(<a href=['"])([^'"]+)(.*)
替换:$1\L$2\E$3
关键是使用\E 来停止大小写替换。我不熟悉工具记事本++。不知道怎么换。所以我只是给出了匹配整行的模式。可以缩短。
【解决方案2】:
查找直到第一个>(惰性量词)之前的所有字符:<a(.*?)>
将所有匹配的组替换为小写:<a\L$1>
这是working demo(也在notepad++中测试过)
【解决方案3】:
-
Ctrl+H
- 查找内容:
(?<=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>