大写到正确

时间:2017-08-03 05:30:09

标签: regex xml notepad++ uppercase find-replace

我有一个xml文档,我在notepad ++中编辑

name="TEXT"
name="TEXT2"

任何人都可以帮助命令/查找和替换将转换名称中的所有内容=""到Propercase

期望的结果

name="Text"
name="Text2"

我无法将整个xml编辑为rightcase

3 个答案:

答案 0 :(得分:1)

你可以匹配正则表达式

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

并将其替换为

name="\U\1\L\2

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

答案 1 :(得分:0)

使用Ctrl + Alt标记+鼠标左键单击您想要的文本

在第6列到第

行的情况下

编辑 - >将案例转换为 - >适当

Alt +U 

答案 2 :(得分:0)

  • 控制 + ħ
  • 找到:^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
  • 全部替换

<强>第二

将所有单词更改为Propercase:

  • 控制 + ħ
  • 找到:(\s\w)(\w+)
  • 替换为:\U$1\L$2
  • 全部替换

<强>第三

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

  • 控制 + ħ
  • 找到:"\s
  • 替换为:"
  • 全部替换