正则表达式替换。在“标签:”定界符之后为所有单词加标签

时间:2018-09-29 02:06:24

标签: regex replace notepad++

在一个长文件中,在Notepad ++中使用正则表达式,我想用连字号{替换(用列Tags:)之后的:(空格)的所有出现{1}},还删除逗号#

例如:

,

应成为

word1 word2 word3 Tags: communication, inspirational, love, relationships

1 个答案:

答案 0 :(得分:1)

此正则表达式将执行您想要的操作:

(\s+Tags:\s+|(?<!^|$)\G)\s*,?\s*(\w+)

第一部分(\s+Tags:\s+|(?<!^|$)\G)查找单词Tags:或上一个匹配项的开头(\G),其中不能在行的开头或结尾({ {1}})。第二部分寻找一个单词,其前面是一个可选的逗号和一些空格。

Regex101 Demo

在记事本中,打开“替换”对话框,选择(?<!^|$)Wrap around,然后用字符串Regular expression(这是一个空格,后跟#\2,然后是字符串)进行替换。通过#)。

选择\2

样本输入:

Replace All

更换后:

word1 word2 word3 Tags: communication, inspirational, love, relationships
word4 word5 word6 Tags: single, mother, blue, sunny

更新

如果您想在单词中使用特殊字符(例如word1 word2 word3 #communication #inspirational #love #relationships word4 word5 word6 #single #mother #blue #sunny ),请将正则表达式中的-更改为例如\w。要允许单词中的任何字符,请将正则表达式中的[\w-]更改为\w

更新2

由于在\S之前可能没有空白行,因此有必要将Tags:之前的\s+更改为Tags:。即

\b

Updated Regex101 demo