-1

我有一个正在用记事本++ 编辑的 xml 文档

name="TEXT"
name="TEXT2"

任何人都可以帮助使用命令/查找和替换将 name="" 中的所有内容转换为 Propercase

期望的结果

name="Text"
name="Text2"

我无法将整个 xml 编辑为正确的大小写

4

3 回答 3

1

你可以匹配正则表达式

name="([a-zA-Z])(\w*)

并将其替换为

name="\U\1\L\2

你可以在这里找到一个例子 https://regex101.com/r/U6F3Dc/1/

于 2017-08-03T07:00:01.857 回答
0

使用 Ctrl+Alt+鼠标左键单击要正确大小写的文本

在您的情况下,从第 6 列到行尾

编辑 -> 将大小写转换为 -> 正确

Alt +U 
于 2017-08-03T05:36:13.280 回答
0
  • Ctrl+H
  • 找什么:^name="\K(\w)(\w+)(?:(\s\w)(\w+)(?:(\s\w)(\w+))?)?
  • 用。。。来代替:\U$1\L$2\U$3\L$4\U$5\L$6
  • Replace all

解释:

^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 的方法:

第一的:

在第一个单词前面加一个空格:

  • Ctrl+H
  • 找什么:^name="\K
  • 用。。。来代替:A SPACE
  • Replace all

第二:

将所有单词更改为大写:

  • Ctrl+H
  • 找什么:(\s\w)(\w+)
  • 用。。。来代替:\U$1\L$2
  • Replace all

第三:

删除第一个单词前面的空格:

  • Ctrl+H
  • 找什么:"\s
  • 用。。。来代替:"
  • Replace all
于 2017-08-03T09:53:01.470 回答