5

我有一个包含几行的文本文件,如下所示:

cd_cod_bus
nm_number_ex
cd_goal

我想用 Notepad++ 去掉-后面的字符和大写(我也可以使用其他工具,但如果它没有让问题变得更麻烦)。

因此,我尝试使用以下正则表达式获取字符并将其(?<=_)\w替换\U\1\E\2为大写技巧,但这就是我的问题所在。我认为正则表达式没问题,但是一旦单击全部替换,我就会得到以下结果:

cd_od_us
nm_umber_x
cd_oal

如您所见,它只是删除了匹配项。

你知道问题出在哪里吗?

谢谢。

4

3 回答 3

8

搜索正则表达式没有捕获组,即替换中的 \1 和 \2 引用不引用任何内容。

试试这个:

Search: _(\w)
Replace \U\1\E

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

于 2013-09-12T08:09:42.343 回答
2

代替

_(.)

\U$1

会给你:

cdCodBus
nmNumberEx
cdGoal

并为您的

我也可以使用其他工具,但如果它没有让问题变得更麻烦

我建议你试试 vim。

于 2013-09-12T08:09:19.930 回答
2

尝试这个,

_(\w)

并替换为

\U\1

这是一个截图

于 2013-09-12T08:09:50.013 回答