在此布局中,我有一个很大的文件:
world12345:Betaalpha
world12344:alphabeta
world12343:ZetaBeta
world12342:!betatheta
我需要将“:”之后的第一个小写字母转换为大写字母,并将第一个大写字母转换为小写字母。 我曾经尝试过使用notepad ++和emeditor,但是对正则表达式的经验并不丰富。
这就是我希望它成为(正则表达式)之后的方式
world12345:betaalpha
world12344:Alphabeta
world12343:zetaBeta
world12342:!betatheta (unchanged, as the first char is a special char)
我尝试在网上搜索npp +中的正则表达式,但无济于事。 不幸的是,我不是脚本编写者,所以我不能自己写。
谢谢!
答案 0 :(得分:2)
这是我能想到的最简单的解决方案。
查找内容::(\u)|:(\l)
替换为::\l($1)\u($2)
启用设置:“环绕并匹配”大小写
搜索模式:正则表达式
按全部替换。
\u matches & converts uppercase, \l matches & converts lowercase.
答案 1 :(得分:1)
感谢this answer,在最初认为不可能的情况下,我能够找到您的问题的解决方案。
在Notepad ++中执行此操作的方法是使用以下选项:
^([^:]+:)(([A-Z])|([a-z]))([^:]+)$
$1\L$3\E\U$4\E$5
以下是此操作的GIF:
查找内容字段的细分:
^
代表一行的开头,结尾的$
代表一行的结尾。这样可以防止它变得懒惰或换行。([^:]+:)
代表行首的字符,允许:
以外的所有字符。这是组$1
(([A-Z])|([a-z]))
代表:
之后的第一个字符。如果除了大写或小写字母外,其他任何内容都将跳过该行。
$2
将是第一个字符,无论大小写如何。我们将在替代产品时忽略它。$3
如果是大写字母,将是第一个字符,否则$3
将为空。$4
如果是小写字母,将是第一个字符,否则$4
将为空。([^:]+)
代表行尾的字符,允许:
以外的所有字符。这是组$5
。替换为字段的明细:
$1
将是如上所述的第一组\L$3\E
将如上所述将组$3
转换为小写。\U$4\E' will convert group
$ 4`如上所述,大写。$5
将是如上所述的最后一组 \L
和\U
分别代表“开始转换为小写字母”或“大写字母”。 \E
代表“停止转换”。由于$3
或$4
中只有一个包含第一个字符(另一个将为空白),因此仅在需要时才进行转换。