首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >notepad++找到某些行,修改它们(小写)

notepad++找到某些行,修改它们(小写)
EN

Stack Overflow用户
提问于 2018-09-22 03:23:39
回答 1查看 351关注 0票数 4

试图用regex完成以下操作:

在以0开头的行中,我希望将单词从BLA_BLA更改为Bla (删除下划线,然后转换为小写,保留每个单词大写的第一个字母)。

原件:

代码语言:javascript
复制
ACACIA_STAIRS:
  0: ACACIA_STAIRS
ACACIA_TRAPDOOR:
  0: ACACIA_TRAPDOOR
ACACIA_WOOD:
  0: ACACIA_WOOD
ACTIVATOR_RAIL:
  0: ACTIVATOR_RAIL
AIR:
  0: AIR
ALLIUM:
  0: ALLIUM
ANDESITE:
  0: ANDESITE

员额查找/替换:

代码语言:javascript
复制
ACACIA_STAIRS:
  0: Acacia Stairs
ACACIA_TRAPDOOR:
  0: Acacia Trapdoor
ACACIA_WOOD:
  0: Acacia Wood
ACTIVATOR_RAIL:
  0: Activator Rail
AIR:
  0: Air
ALLIUM:
  0: Allium
ANDESITE:
  0: Andesite

任何帮助都是非常感谢的!下面是我要转换的完整文件:https://pastebin.com/raw/mKFcn9FM

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-09-22 06:20:01

Notepad++ (由于它支持boost语法)支持替换字符串中的条件语句,因此在将这些字母转换为小写形式以及同时用空格字符替换下划线时没有问题。

代码语言:javascript
复制
(?>^\h*0:\W+\K|\G(?!^))(.)([a-zA-Z]+)(_+)?

而代之以

代码语言:javascript
复制
\U$1\L$2(?3 )

Regex分解:

代码语言:javascript
复制
(?> # Start of non-capturing group (atomic)
    ^\h*0:\W+\K # Match beginning of line following a sequence of spaces
                 # following `0:`  and some non-word characters
                 # then forget all (\K)
    | # Or
    \G(?!^) # Continue from previous match
) # End of non-capturing group
(.) # Capture first letter
([a-zA-Z]*) # Capture the rest of letters
(_+)? # Capture underscores, optionally
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52453221

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档