【问题标题】:How to change the case of letters in the regular expression in Notepad ++如何在记事本++中更改正则表达式中字母的大小写
【发布时间】:2012-12-01 14:49:03
【问题描述】:

例如,有很多这样的行:“术语 - 定义”。由于Notepad++中的正则表达式可以做到将“term”写成大写(大写)字母——TERM?

谢谢!

【问题讨论】:

    标签: regex text notepad++


    【解决方案1】:
    Find what: ^(\S+)(?=\s*-)
    Replace with: \U$1
    

    这是做什么的?搜索模式在行首匹配尽可能多的非空格字符 (\S+),并由于括号将它们捕获在变量 $1 中。之后是一个前瞻,断言这个“单词”后面跟着一个连字符(中间没有其他任何东西)。这种前瞻实际上并未包含在匹配中,因此不会被删除/替换。

    替换以\U 开头,表示“在此处以大写形式输出所有内容,除非您使用\E 停止此操作”。然后$1 写回我们与\S+ 匹配的内容(在您的情况下为term)。但大写。

    确保更新到 Notepad++ 6。在此之前,正则表达式有点古怪。

    Here is the documentation of what's possible in the replacement string.

    编辑:

    我想你的实际行可能比在行首有一个单词然后是连字符更有趣。但是从你给出的例子中我无法判断。但是要对任意数量的单词执行此操作并忽略行首的空格(只要行中的某处有连字符),您可以执行以下操作:

    Find what: ^(([ \t]*[^\s-]+)*)(?=[ \t]*-)
    

    但如果没有实际的输入示例,恐怕您必须自己弄清楚正确的搜索模式。

    【讨论】:

    • 现在我总是会在下结论之前参考documentation
    猜你喜欢
    • 1970-01-01
    • 2019-05-06
    • 1970-01-01
    • 2011-01-16
    • 1970-01-01
    • 2011-03-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多