Regex 正则表达式替换除捕获表达式之外的所有表达式

Regex 正则表达式替换除捕获表达式之外的所有表达式,regex,Regex,我试图使用正则表达式来查找除不想替换的数据之外的所有内容。然后我想替换除找到的表达式之外的所有内容 我的匹配是查找所有以“CN=”开头并以12个字符结尾的单词。我目前正在使用逻辑(!?CN=)\w{12}。它在字符串中查找两个匹配项。但是,我想找到除了这两个实例之外的所有内容,找到其他内容,并用空值替换其他内容,这样我就有了两个CN=word值 附图显示了我的测试和结果。我想要相反的效果 谢谢, Fred您可以使用*捕获匹配之前出现的任何内容,并添加$(输入结束)作为CN=\w{12}的替代:

我试图使用正则表达式来查找除不想替换的数据之外的所有内容。然后我想替换除找到的表达式之外的所有内容

我的匹配是查找所有以“CN=”开头并以12个字符结尾的单词。我目前正在使用逻辑(!?CN=)\w{12}。它在字符串中查找两个匹配项。但是,我想找到除了这两个实例之外的所有内容,找到其他内容,并用空值替换其他内容,这样我就有了两个CN=word值

附图显示了我的测试和结果。我想要相反的效果

谢谢,
Fred

您可以使用
*
捕获匹配之前出现的任何内容,并添加
$
(输入结束)作为
CN=\w{12}
的替代:

.*?($|CN=\w{12})
仅替换为捕获的组:

$1
演示


注意:我没有添加
如您所写…以“CN=”开头的单词。如果确实需要将感叹号保留在
CN=
之前,则应将其添加到正则表达式中。

欢迎使用堆栈溢出。请编辑您的问题以向我们显示示例数据、您尝试匹配的内容和示例输出。只需连接所有匹配项。请注意,您可以通过“共享”按钮获得指向该正则表达式测试的链接。这比图片有用得多。这个答案适合你的需要吗?你能接受它或留下评论吗?