Notepad++中的正则表达式替换

5

我有一个文本文件,其中有几行像这样的内容:

cd_cod_bus
nm_number_ex
cd_goal

我想使用Notepad++(如果其他工具不能解决问题,则可以使用其他工具)去除-并将以下字符大写。因此,我尝试使用以下正则表达式(?<=_)\w获取字符,并使用\U\1\E\2进行大写处理,但这就是我的问题所在。我认为正则表达式没问题,但一旦我点击“全部替换”,我得到了以下结果:
cd_od_us
nm_umber_x
cd_oal

正如您所看到的,它只删除匹配项。

您知道问题出在哪里吗?

谢谢。

3个回答

8
搜索正则表达式没有捕获组,即替换中的\1和\2引用不指向任何内容。
请尝试使用以下方法:
Search: _(\w)
Replace \U\1\E

在搜索部分中有一个捕获组(即\w周围的括号),而替换中的\1指的是被捕获的内容。


2

替换

_(.)

使用

\U$1

将会给您:

cdCodBus
nmNumberEx
cdGoal

对于你的需求,我建议你尝试使用vim工具。

虽然我也可以使用其他工具,但如果它不能更好地解决问题,可能会更加麻烦。


2

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接