【问题标题】:Convert first lowercase to uppercase and uppercase to lowercase (regex?)将第一个小写转换为大写,将大写转换为小写(正则表达式?)
【发布时间】:2019-05-15 03:58:59
【问题描述】:

我在这个布局中有一个大文件:

world12345:Betaalpha    
world12344:alphabeta    
world12343:ZetaBeta    
world12342:!betatheta

我需要将“:”之后的第一个小写字母转换为大写,并将第一个大写字母转换为小写。 我试过使用 notepad++ 和 emeditor,但我对正则表达式的经验并不丰富。

这就是我希望它在(正则表达式?)之后的样子

world12345:betaalpha    
world12344:Alphabeta    
world12343:zetaBeta    
world12342:!betatheta   (unchanged, as the first char is a special char)

我尝试在网上搜索 npp+ 中的正则表达式,但无济于事。 不幸的是,我不是脚本编写者,所以我不能自己编写。

提前致谢!

【问题讨论】:

    标签: notepad++ case-sensitive uppercase lowercase emeditor


    【解决方案1】:

    这是我能想到的最简单的解决方案。

    查找内容::(\u)|:(\l)

    替换为::\l($1)\u($2)

    启用设置:环绕和匹配大小写

    搜索方式:正则表达式

    按全部替换。

    说明

    \u matches & converts uppercase, \l matches & converts lowercase.

    【讨论】:

    • 很好,我不知道 \u,\l 进行匹配。
    • 感谢您的回复,也尝试了您的答案。也可以,谢谢:)
    • @Toto 它是 Notepad++ 特定的正则表达式。 \u 是 [A-Z] 和 \l = [a-z] 的简写。因此,在其他软件中,可以直接替换它。
    • 你的回答很容易解决了我的问题,我必须在 \n 之后小写所以我首先用 % 替换 \n (我在我的文本中不使用 % )然后使用你的示例,然后更改为% 到 \n... :D
    【解决方案2】:

    感谢this answer,在最初认为这是不可能的情况下,我能够找到解决您问题的方法。

    在 Notepad++ 中执行此操作的方法是使用以下选项:

    • 打开替换对话框 (Ctrl + H)
    • 查找内容:^([^:]+:)(([A-Z])|([a-z]))([^:]+)$
    • 替换为:$1\L$3\E\U$4\E$5
    • 检查匹配大小写
    • 检查环绕
    • 选择正则表达式
    • 取消选中 。匹配换行符
    • 按 全部替换

    这是一个 GIF 动图:

    Find what 字段的细分:

    • 正则表达式前面的^ 表示行首,末尾的$ 表示行尾。这可以防止它变得懒惰或换行到下一行。
    • ([^:]+:) 表示行首的字符,允许除: 之外的所有字符。这是组$1
    • (([A-Z])|([a-z])) 表示: 之后的第一个字符。如果有大写或小写字母以外的任何内容,它将跳过该行。
      • 组$2 将是第一个字符,无论大小写。我们将在替换时忽略这一点。
      • $3 组为大写时为第一个字符,否则$3 为空。
      • $4 组为小写时为第一个字符,否则$4 为空。
    • ([^:]+) 代表行尾的字符,允许除: 之外的所有字符。这是群组$5。

    替换为字段的细分:

    • $1 将是上述第一组
    • \L$3\E 将如上所述将组 $3 转换为小写。
    • \U$4\E' will convert group$4` 如上所述转为大写。
    • $5 将是如上所述的最后一组

    \L 和\U 分别代表“开始转换为小写”或“大写”。 \E 代表“停止转换”。由于$3 或$4 中只有一个将包含第一个字符(另一个将为空白),因此仅在我们想要的情况下进行转换。

    【讨论】:

    • 谢谢,我先用了你的解决方案。它成功了!也非常感谢您的解释
    猜你喜欢
    • 2011-06-21
    • 2013-07-24
    • 1970-01-01
    • 2011-07-21
    • 2022-01-24
    • 1970-01-01
    • 2015-11-28
    • 2011-10-29
    • 2016-02-24
    相关资源
    最近更新 更多