【问题标题】:Notepad++ and regex: how to UPPERCASE specific part of a string / find / replaceNotepad++ 和正则表达式:如何大写字符串的特定部分/查找/替换
【发布时间】:2014-10-14 09:42:15
【问题描述】:

我已经尝试了一段时间来让这个工作,但我自己找不到这个任务的解决方案 - 好的,我对正则表达式的使用很陌生,但对学习很感兴趣,希望任何人都有给我一些脑力食品...

我的文本字符串是这样的 - 没有数字...

Word1 Word2 word3(括号中的一些单词)
Word1(括号中的一些单词)
word1, Word2(括号中的一些单词)

的意思: 不定数量的单词(有时只有一个,可能 2 到 4 个,有时用逗号分隔)后跟圆括号中的字符串(括号中的值不应更改)

我正在寻找的是两个不同的正则表达式 - 在记事本++中与 FIND 和 REPLACE 一起使用
1。括号前的所有单词只大写
2.like no.1 + 添加html-tags)

应该看起来像:1:

WORD1 WORD2 WORD3(括号中的一些单词)
WORD1(括号中的一些单词)
WORD1, WORD2(括号中的一些单词)

和2:

编辑:第二个 html-tag 位于错误的位置,现在正确!

%htmltag%WORD1 WORD2 WORD3%/htmltag%(括号中的一些单词)
%htmltag%WORD1%/htmltag%(括号中的一些单词)
%htmltag%WORD1, WORD2%/htmltag%(括号中的一些单词)

希望有人可以帮助我 - 事先谢谢!

【问题讨论】:

  • 您有尝试过的正则表达式示例吗?
  • 我试过这样:^([\w*]*?)\s[(] - 但它只找到每行的开头,而不是直到第一个圆括号的所有单词 -顺便说一句:这是圆括号!

标签: regex text format notepad++ uppercase


【解决方案1】:

对于第 1 部分,您可以使用

Find:  ^(.*?)(?=\()
Replace \U\1

确保选择了正则表达式

第 2 部分

Find: ^(.*?)(\(.*?\))
Replace:%htmltag%\1%/htmltag%\2

需要

WORD1 WORD2 WORD3 (some words in brackets)
WORD1 (some words in brackets)
WORD1, WORD2 (some words in brackets)

并将其转换为

%htmltag%WORD1 WORD2 WORD3 %/htmltag%(some words in brackets)
%htmltag%WORD1 %/htmltag%(some words in brackets)
%htmltag%WORD1, WORD2 %/htmltag%(some words in brackets)

【讨论】:

  • 基思,这太棒了!你是我的英雄 ;-) 对第 2 部分还有什么想法吗?
  • 很抱歉再次打扰您...这很接近,但我同时编辑了我的问题-第二个 html-tag 在错误的位置:我只想要标签之间的大写单词(请参阅上面) - 甚至,如果你也知道一个解决方案:一些大写单词在一行中,然后是其他单词...... - 每行不同 - 如果可能的话,应该在标签之间设置大写字母??跨度>
  • 等一下……我会的
  • 你去,只是为开头的单词做html标签
  • part1 完美运行,谢谢!至于第 2 部分:我是否正确解释了 find-regex:我们正在搜索一个字符串,直到圆括号即 /1 后跟第二个字符串 /2 - 然后您尝试使用标签重用这两个字符串......应该可以,但不知何故没有,嗯??
【解决方案2】:

场景 1:在 Notepad++ 上为匹配生成大写字母

您可以像这样使用正则表达式:

\(.*?\)|(\w+)

Working demo

然后在您的Find/Replace 对话框中,您可以将\U\1 放在Replace with 上。所以,如果你超过Find Next,你可以替换字符串来生成大写输出。

场景 2:在每一行连接标签

你可以使用这个正则表达式:

(.+?)\[

Working demo

【讨论】:

  • 嘿,fede,谢谢你的帖子!第 1 部分不适用于记事本++,因为我有圆括号!对于第 2 部分,请参阅我的编辑,我将标签放在错误的位置...
  • @zenortheartofregex 我修复了两种情况的答案。立即查看
  • 谢谢你,费德! notepad++部分对我来说很清楚,对于在线演示我不确定......
  • @zenortheartofregex 在线演示是为了向您展示它的工作原理,您只需将该正则表达式复制到 Notepad++ 并在“替换”字段中使用我在 SUBSTITUTION 的屏幕截图中显示的内容。
猜你喜欢
  • 1970-01-01
  • 2019-10-11
  • 2014-10-20
  • 1970-01-01
  • 2017-01-28
  • 2015-01-11
  • 2012-12-02
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多