Regex 将一个*MSWORD*正则表达式模式与另一个匹配并替换

Regex 将一个*MSWORD*正则表达式模式与另一个匹配并替换,regex,replace,ms-word,Regex,Replace,Ms Word,我有一个MSWord文件,其中有数百个条目,组织方式如下: 大写单词^t小写单词^n 我想匹配这些模式,并用^n替换^t。到目前为止,我有一个匹配它们的选项:^t 如何维护这些匹配的单词(假设它们不是同一个单词)并将匹配的^t替换为^n 编辑:我在下面提供了一个完整的示例。更改: ACH BLEIB BEI UNS^t赞美诗简介^n 到 ACH BLEIB BEI UNS^n赞美诗简介^n (第一组将始终是1个或多个大写单词;第二组将始终是1个或多个小写单词;将始终有一个^t分隔它们,并在结尾处

我有一个MSWord文件,其中有数百个条目,组织方式如下:

大写单词
^t
小写单词
^n

我想匹配这些模式,并用
^n
替换
^t
。到目前为止,我有一个匹配它们的选项:
^t

如何维护这些匹配的单词(假设它们不是同一个单词)并将匹配的
^t
替换为
^n

编辑:我在下面提供了一个完整的示例。更改:

ACH BLEIB BEI UNS
^t
赞美诗简介
^n

ACH BLEIB BEI UNS
^n
赞美诗简介
^n


(第一组将始终是1个或多个大写单词;第二组将始终是1个或多个小写单词;将始终有一个
^t
分隔它们,并在结尾处有一个
^n

您可以使用以下组:

(<[A-Z][A-Z]{2,}>)^t(<[a-z][a-z]{2,}>)
^                ^  ^                ^
()^t()
^                ^  ^                ^
这些未替换的括号将创建编号的捕获组。现在,可以使用
\n
从替换模式访问捕获的值,其中
n
是以
1
开头的捕获组的编号


因此,将上述内容替换为
\1^n\2

您可以使用捕获组:

(<[A-Z][A-Z]{2,}>)^t(<[a-z][a-z]{2,}>)
^                ^  ^                ^
()^t()
^                ^  ^                ^
这些未替换的括号将创建编号的捕获组。现在,可以使用
\n
从替换模式访问捕获的值,其中
n
是以
1
开头的捕获组的编号


因此,用
\1^n\2

替换上面的内容,为什么不干脆用
\n
替换
\t
?替换
\t
会将文件中的所有选项卡替换为
\n
,这会弄乱其他行。也许给我们提供一个标签会更好?在我查找奇怪的wa之前,你的模式让我很困惑y MS Word做正则表达式。让微软一有机会就重新发明轮子吧。CT:见上文。奥斯汀:是的,但这就是我必须要做的……我相信人们也会明白我的意思。你为什么不干脆用
\n
替换
\t
?替换
\t
会替换列表中的所有选项卡文件中有
\n
,这会弄乱其他行。也许当时给我们提供一个更好的解决方案会更好?你的模式让我很困惑,直到我找到MS Word处理正则表达式的奇怪方式。让微软一有机会就重新发明轮子。CT:见上文。奥斯汀:是的,但这就是我必须处理的……我很确定如果人们也去查的话,就会明白我的意思。