Notepad++ 将第一个小写字母转换为大写字母,将大写字母转换为小写字母(正则表达式?)
我在这个布局中有一个巨大的文件:Notepad++ 将第一个小写字母转换为大写字母,将大写字母转换为小写字母(正则表达式?),notepad++,case-sensitive,uppercase,lowercase,emeditor,Notepad++,Case Sensitive,Uppercase,Lowercase,Emeditor,我在这个布局中有一个巨大的文件: world12345:Betaalpha world12344:alphabeta world12343:ZetaBeta world12342:!betatheta 我需要将“:”后面的第一个小写字母转换为大写,将第一个大写字母转换为小写。 我试过使用notepad++和emeditor,但我对正则表达式没有太多经验 这就是我希望它成为之后的样子(regex?) 我曾尝试在网络上搜索npp+中的正则表达式,但没有结果。 不幸的是,我不
world12345:Betaalpha
world12344:alphabeta
world12343:ZetaBeta
world12342:!betatheta
我需要将“:”后面的第一个小写字母转换为大写,将第一个大写字母转换为小写。
我试过使用notepad++和emeditor,但我对正则表达式没有太多经验
这就是我希望它成为之后的样子(regex?)
我曾尝试在网络上搜索npp+中的正则表达式,但没有结果。
不幸的是,我不是一个编剧,所以我不能自己写一个
提前谢谢 多亏了,我在最初认为你的问题不可能解决后,才找到了解决办法
在记事本++中执行此操作的方法是使用以下选项:
- 打开“替换”对话框(Ctrl+H)
- 查找内容:
^([^:::+:)([A-Z])|([A-Z])([^::+)$
- 替换为:
$1\L$3\E\U$4\E$5
- 检查火柴盒
- 检查环绕
- 选择正则表达式
- 取消选中。匹配新行
- 按全部替换
- 正则表达式前面的
表示行的开头,末尾的^
表示行的结尾。这可以防止它懒惰或换行到下一行$
表示行开头的字符,允许除([^::+:)
之外的所有字符。这是组:
$1
表示([A-Z])|([A-Z])
后面的第一个字符。如果没有大写或小写字母,它将跳过该行。:
- 组
将是第一个字符,不考虑大小写。我们将在替换时忽略这一点$2
- 如果组
为大写,则它将是第一个字符,否则$3
将为空$3
- 如果组
为小写,则它将是第一个字符,否则$4
将为空$4
- 组
表示行末尾的字符,允许除([^::]+)
以外的所有字符。这是组:
$5
将是如上所述的第一组$1
将如上所述将组\L$3\E
转换为小写$3
$4`转换为大写\U$4\E'将如上所述将组
将是如上所述的最后一组$5
\L
和\U
分别代表“开始转换为小写”或“大写”\E
代表“停止转换”。由于$3
或$4
中只有一个包含第一个字符(另一个为空),因此只能在我们需要的情况下进行转换。这是我能想到的最简单的解决方案。
查找内容::(\u);:(\l)
替换为::\l($1)\u($2)
启用设置:环绕和匹配大小写
搜索模式:正则表达式
按全部替换
解释
\u匹配并转换大写字母,\l匹配并转换小写字母。
很好,我不知道匹配的是
\u\l
。谢谢你的回复,也尝试了你的答案。同样也能做到这一点,谢谢:)@Toto这是Notepad++特有的正则表达式\u
是[a-Z]
和\l
=[a-Z]
的缩写。因此,在其他软件中,可以用它来替换。由于您的答案很容易解决了我的问题,我在\n之后必须使用小写,因此我首先将\n替换为%(我在文本中不使用%),然后使用您的示例,然后将%改为\n…:汉克斯,我先用了你的解决方案。它成功了!也非常感谢你的解释
world12345:betaalpha
world12344:Alphabeta
world12343:zetaBeta
world12342:!betatheta (unchanged, as the first char is a special char)