如何在Notepad ++中更改正则表达式中的字母大小写

时间:2012-12-01 14:49:03

标签: regex text notepad++

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

谢谢!

1 个答案:

答案 0 :(得分:14)

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]*-)

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