Regex 将一个*MSWORD*正则表达式模式与另一个匹配并替换
我有一个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分隔它们,并在结尾处
大写单词
^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:见上文。奥斯汀:是的,但这就是我必须处理的……我很确定如果人们也去查的话,就会明白我的意思。