Regex 删除每行中除一些单词以外的所有内容
我试图找到一个正则表达式解决方案来保持Regex 删除每行中除一些单词以外的所有内容,regex,notepad++,Regex,Notepad++,我试图找到一个正则表达式解决方案来保持 并在不破坏行顺序的情况下删除其他内容。只有部分行包含此模式一次或多次。我尝试了(?您可以使用下面的正则表达式来匹配除和#xA 您可以使用捕获组 (.*?)((?:
){0,}) 详细信息: (.*):Group1-尽可能少地匹配任何字符 ((?: ;){0,}):Group2-是否匹配 ; 您可以使用来匹配和#xA;,然后不使用匹配项 然后匹配除&之外的所有字符,当它遇到&时,断言它后面没有直接跟#xA; 查找内容
代码>并在不破坏行顺序的情况下删除其他内容。只有部分行包含此模式一次或多次。我尝试了(?您可以使用下面的正则表达式来匹配除和#xA
您可以使用捕获组
(.*?)((?:
){0,})
详细信息:
(.*)
:Group1-尽可能少地匹配任何字符
((?:
;){0,})
:Group2-是否匹配
;
您可以使用来匹配和#xA;
,然后不使用匹配项
然后匹配除&之外的所有字符,当它遇到&时,断言它后面没有直接跟
#xA;
查找内容

(*SKIP)(*FAIL)|[^&\r\n]+(?:&(?!#xA;)[^&\r\n]*)*
替换为:
留空
解释
逐字匹配#xA;
使用您想要避免的字符(*跳过)(*失败)
匹配除[^&\r\n]+
或换行符以外的任何字符的1+倍&
非捕获组(?:
匹配&如果不直接后跟&(?!#xA;)
#xA;
匹配除&或换行符以外的任何字符的0+倍[^&\r\n]*
关闭非捕获组并重复0多次)*
这似乎适用于我的样本。但我尝试了50k行,它还保留了不必要的字符。它这样说:“受干扰的区域必须由特殊门户访问,与空间异常的居民交谈,以了解更多“to”&;A&&&&;xA;A”很抱歉,它在记事本上不起作用。它显示n行已更改,但我看不到任何差异。好的,我只是尝试了升华文本,它完全按照我的要求工作。不知道为什么记事本++会给出这样的结果。无论如何,这也可以。谢谢你的帮助。
[^
\n]+
(.*?)((?:
){0,})

(*SKIP)(*FAIL)|[^&\r\n]+(?:&(?!#xA;)[^&\r\n]*)*