使用 Notepad++ 将 under_score_case 更改为 CamelCase?

Fre*_*eit 24 notepad++ regex find-and-replace

我可以在 NP++ 中编写一个正则表达式来查找under_score_case. 我可以在 NP++ 中使用 TextFX 通过突出显示和选择将大小写更改为大写和小写。

如何使用 NP++ 的 Find/Replace 或 TextFX 的 find and replace 将它们拼接在一起并转换under_score_casecamelCase

我想学习如何在 NP++ 中做到这一点,而不是使用脚本。

样本输入:

this is_a_line
some more_data_over_here
whoop de_do_da
Run Code Online (Sandbox Code Playgroud)

期望的输出:

this isALine
some moreDataOverHere
whoop deDoDa
Run Code Online (Sandbox Code Playgroud)

匹配下划线的正则表达式是_([a-z]). 我认为存在但找不到的替代品类似于_\toupper\1.

eur*_*ono 19

一个简单的查找/替换将在 NP++ 中做到这一点:

找: [_]{1,1}([a-z])

代替: \U$1

您需要在“替换”面板中选择“正则表达式”单选按钮才能使其工作。

  • 或者只是`_(.)` 作为搜索字符串。 (5认同)

MBr*_*ley 7

我有一个冗长而复杂的解决方案,但可以在 Notepad++ 中使用。它需要使用正则表达式,可选的正常搜索和替换,以及 TextFX。

  1. 在每个单词的前面添加一个占位符字符,我选择了Z. 它可能不必按字母顺序排列,但最后一步更容易。使用正则表达式,搜索\<([^ ]*)\>并替换为Z\1.
  2. 用唯一的占位符序列替换现有空间。我选择了#space#。这可以使用正则表达式完成,但我更喜欢使用普通或扩展。
  3. 用空格替换下划线。如果有任何不应替换的下划线,则可能需要自定义正则表达式。我只是直接搜索并替换。
  4. 选择所有文本,然后从 TextFX 菜单中选择TextFX Characters -> Proper Case
  5. 现在我们需要颠倒前 3 个步骤。搜索空格,然后用空替换它们。然后搜索您的空格占位符序列,并替换为空格。最后,使用正则表达式,搜索\<Z([^ ]*)\>并替换为\1.


Sea*_* C. 6

我通常自己使用 vim 作为编辑器。以下正则表达式完成了您在 vim 中尝试执行的操作:

%s/_\([a-zA-Z]\)/\u\1/g

据我所知(我在 NP++ 上混了一会儿),Notepad++ 不理解\uPerl Regexp 中的大写宏。您可能无法完全使用 Notepad++ 来完成此操作。希望有人能证明我是错的,让你开心。