我有一个正在用记事本++ 编辑的 xml 文档
name="TEXT"
name="TEXT2"
任何人都可以帮助使用命令/查找和替换将 name="" 中的所有内容转换为 Propercase
期望的结果
name="Text"
name="Text2"
我无法将整个 xml 编辑为正确的大小写
我有一个正在用记事本++ 编辑的 xml 文档
name="TEXT"
name="TEXT2"
任何人都可以帮助使用命令/查找和替换将 name="" 中的所有内容转换为 Propercase
期望的结果
name="Text"
name="Text2"
我无法将整个 xml 编辑为正确的大小写
你可以匹配正则表达式
name="([a-zA-Z])(\w*)
并将其替换为
name="\U\1\L\2
你可以在这里找到一个例子 https://regex101.com/r/U6F3Dc/1/
使用 Ctrl+Alt+鼠标左键单击要正确大小写的文本
在您的情况下,从第 6 列到行尾
编辑 -> 将大小写转换为 -> 正确
Alt +U
^name="\K(\w)(\w+)(?:(\s\w)(\w+)(?:(\s\w)(\w+))?)?
\U$1\L$2\U$3\L$4\U$5\L$6
解释:
^name="\K : matches literally name=" then forget it
(\w)(\w+) : first letter in group 1, rest of word in group 2
(?: : start non capture group
(\s\w)(\w+) : a space and first letter in group 3, rest of word in group 4
(?: : start non capture group
(\s\w)(\w+) : a space and first letter in group 5, rest of word in group 6
)? : end non capture group, optional
)? : end non capture group, optional
您可以添加任意数量的非捕获组来处理任意数量的单词。
替代品:
\U$1\L$2 : uppercase group 1, lower case group 2
\U$3\L$4 : uppercase group 3, lower case group 4
\U$5\L$6 : uppercase group 5, lower case group 6
原来的:
name="TEXT"
name="TEXT2"
name="JOHN SMITH"
name="JOHN SMITH2"
name="JOHN SMITH CARTER"
给定示例的结果:
name="Text"
name="Text2"
name="John Smith"
name="John Smith2"
name="John Smith Carter"
另一种适用于任意数量的单词但需要运行 3 replace_all 的方法:
第一的:
在第一个单词前面加一个空格:
^name="\K
A SPACE
第二:
将所有单词更改为大写:
(\s\w)(\w+)
\U$1\L$2
第三:
删除第一个单词前面的空格:
"\s
"