【问题标题】:Convert a char to upper case using regular expressions (EditPad Pro)使用正则表达式将字符转换为大写 (EditPad Pro)
【发布时间】:2010-11-12 15:50:57
【问题描述】:

我写了一个正则表达式,希望能够将每个匹配项(即一个字符)替换为大写字符。我正在使用 EditPad Pro(但是我愿意使用任何其他允许我这样做的工具,只要它可以免费试用,因为我只需要这样做一次)。

背景:我有一个非常长的文本文件,由一个区分大小写的应用程序使用,有些单词以小写而不是大写字符开头,从而导致应用程序崩溃。手动完成这将花费很长时间,并且没有正则表达式会非常复杂,因为(邪恶的)小写字符的出现非常具体。

我已经编写了 select 正则表达式,现在我可以将它与反向引用一起使用($1 工作得很好)但是我不能用大写字符替换它。我认为像 \u$1 这样的东西会起作用,但它在 EditPad Pro 中不起作用。

如果没有免费工具允许我这样做,我想另一种选择是只在 C# 中进行,但是我有点着急,而且不在编译器附近,所以我必须下载 express 版本首先,所以......最好找到支持这种功能的工具!

谢谢!

【问题讨论】:

  • 这个问题更适合超级用户吗?

标签: regex


【解决方案1】:

TextPad 将允许您执行此操作。

示例:

test this sentence

查找内容:\([^ ]*\) \(.*\) 替换为:\U\1\E \2

\U 将导致所有后续字符为大写

\E 将关闭\U

结果将是:

TEST this sentence

【讨论】:

  • 有没有办法在.NET Regex 中执行这个操作(不使用ToUpper)?
  • 也可以在记事本++中使用。
  • \U$1\E in Sublime Text
  • 在 Notepad++ 中 find 应该是 (.*) 并且 replace 应该是 \U$1
  • 也可以在 PHPStorm 中使用。不过我有相反的要求。我不得不将所有大写的属性值(可能来自 90 年代的 HTML)替换为小写。使用\L$1\E 有效。
【解决方案2】:

我知道这个帖子是关于 EditPad Pro 的,但我来到这里是因为我对 javascript 正则表达式有同样的需求。

对于在这里需要相同提示的人,您可以使用函数或 lambda 作为替换参数。

我使用下面的函数将带有-的css名称转换为javascript等价物,例如"border-top"将转换为"borderTop"

    s = s.replace(/\-[a-z]/g, x => x[1].toUpperCase());

【讨论】:

    【解决方案3】:

    EditPad Pro 和 PowerGREP 有一个 独特的功能,让您 更改反向引用的大小写。 \U1 插入第一个反向引用 大写,\L1 小写和 \F1 中的第一个字符 大写和余数 小写。最后,\I1 插入 每个单词的第一个字母 大写,其他字母在 小写。

    来源:Goyvaerts,2006 年 1 月。 正则表达式:完整教程。露露网。 p. 35。 ISBN 1411677609。谷歌图书。检索于 2010 年 6 月 25 日。

    【讨论】:

      【解决方案4】:

      您可以在 jEdit 中执行此操作,方法是在 jEdit 的查找和替换对话框中使用“BeanShell sn-p 的返回值”选项。只需搜索 " [a-z]" 并将其替换为 " _0.toUpperCase()"(不带引号)

      【讨论】:

      • 您的回答与最初的问题并不真正相关,但我在谷歌搜索时发现了它,这正是我想要的。太棒了,谢谢!
      【解决方案5】:

      您还可以使用\I1\I2 等代替$1$2 将匹配的第一个字母大写。

      【讨论】:

        【解决方案6】:

        Notepad++ 的另一个用法示例(正则表达式搜索模式)

        Find: (g|c|u|d)(et|reate|pdate|elete)_(.)([^\s (]+)
        Replace: \U\1\E$2\U\3\E$4
        

        示例:

        get_user -> GetUser
        create_user -> CreateUser
        update_user -> UpdateUser
        delete_user -> DeleteUser
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2011-06-21
          • 1970-01-01
          • 1970-01-01
          • 2020-05-12
          • 2012-11-14
          • 2016-03-28
          • 1970-01-01
          相关资源
          最近更新 更多