RegEx string查找两个字符串并删除文件中的其余文本

RegEx string查找两个字符串并删除文件中的其余文本,regex,find,notepad++,Regex,Find,Notepad++,我需要用记事本查找并删除文本文件中的其余部分+++ 我想使用正则表达式来查找thban的变体。。。。。变量在其see圆点后面始终最多有5个字符。 用我的搜索字符串,它击中了最后一行,但却击中了整行。我只想保留这个词。 当这起作用时,我还希望保留包含C3的单词。。。。。 tekst文件的其余部分可以删除。 它也应该是不敏感的 (?!thban\w+).*\r?\n? \ 这将导致 THBANES900 C3950 THBAN THBANES901 C3850 THBANMP900 thbanes

我需要用记事本查找并删除文本文件中的其余部分+++ 我想使用正则表达式来查找thban的变体。。。。。变量在其see圆点后面始终最多有5个字符。 用我的搜索字符串,它击中了最后一行,但却击中了整行。我只想保留这个词。 当这起作用时,我还希望保留包含C3的单词。。。。。 tekst文件的其余部分可以删除。 它也应该是不敏感的

(?!thban\w+).*\r?\n?
\

这将导致

THBANES900 C3950
THBAN
THBANES901 C3850
THBANMP900
thbanes900

也许只是抓住那些感兴趣的话,而不是取代其他的一切?在记事本++中搜索模式:

^.*\b(thban\S{0,5})(?:.*(\sC3\w+))?.*$|.+

^-启动字符串ancor。 .*\b-除换行符以外的任何字符,在一个字边界上的次数不超过零次。 -打开第一捕获组。 thban\S{0,5}-匹配thban和零或5个非空白字符。 -关闭第一捕获组。 ?:-打开非捕获组。 .*-换行符以外的任何字符零次或多次。 -打开第二捕获组。 \sC3\w+-一个空白字符,匹配C3和一个或多个单词字符。 -关闭第二捕获组。 ? - 关闭非捕获组并将其设置为可选。 .*-换行符以外的任何字符零次或多次。 $-结束字符串ancor。 |-替换或替换。 .+-换行符以外的任何字符一次或多次。 替换为:

$1$2
在此之后,您可能会得到一个空行,您可以使用内置选项快速删除它。我不知道英文术语,所以我制作了一个GIF来告诉您在哪里可以找到这些按钮:


我不确定“忽略”案例的英文复选按钮是什么。但是请确保没有勾选。

也许只是捕捉那些感兴趣的单词,而不是替换所有其他单词?在记事本++中搜索模式:

^.*\b(thban\S{0,5})(?:.*(\sC3\w+))?.*$|.+

^-启动字符串ancor。 .*\b-除换行符以外的任何字符,在一个字边界上的次数不超过零次。 -打开第一捕获组。 thban\S{0,5}-匹配thban和零或5个非空白字符。 -关闭第一捕获组。 ?:-打开非捕获组。 .*-换行符以外的任何字符零次或多次。 -打开第二捕获组。 \sC3\w+-一个空白字符,匹配C3和一个或多个单词字符。 -关闭第二捕获组。 ? - 关闭非捕获组并将其设置为可选。 .*-换行符以外的任何字符零次或多次。 $-结束字符串ancor。 |-替换或替换。 .+-换行符以外的任何字符一次或多次。 替换为:

$1$2
在此之后,您可能会得到一个空行,您可以使用内置选项快速删除它。我不知道英文术语,所以我制作了一个GIF来告诉您在哪里可以找到这些按钮:

我不确定“忽略”案例的英文复选按钮是什么。但请确保没有勾选。

您可以使用

查找内容:?|\bthban\S{0,5}|\sC3\w+|?S:。 替换为:?1$1\n:

屏幕截图和设置

细节

?|-分支重置组的开始: \bthban\S{0,5}-组1:一个单词边界,然后是thban和任何0到5个非空白字符 |-或 \sC3\w+-一个空格字符,然后是组1:C3和一个或多个单词字符 -分支重置组结束 |-或 s:。-任何一个字符,包括换行字符 替代品是

?1-如果第1组匹配, $1\n-带换行符的组1值 :-否则,替换为空字符串 -条件替换模式的结束 你可以用

查找内容:?|\bthban\S{0,5}|\sC3\w+|?S:。 替换为:?1$1\n:

屏幕截图和设置

细节

?|-分支重置组的开始: \bthban\S{0,5}-组1:一个单词边界,然后是thban和任何0到5个非空白字符 |-或 \sC3\w+-一个空格字符,然后是组1:C3和一个或多个单词字符 -分支重置组结束 |-或 s:。-任何一个字符,包括换行字符 替代品是

?1-如果第1组匹配, $1\n-带换行符的组1值 :-否则,替换为空字符串 -条件替换模式的结束
你说的“它后面总是有最多5个字符”是什么意思?你的例子没有说明这一点。你是说“之后”吗?那么,为什么只有THBAN一条线保持不变呢?很抱歉,我会强调,但实际上,我的意思是,在固定的字符串之后,“它后面总是有最多5个字符”是什么意思?您的示例没有说明这一点。你是说“之后”吗?那么,为什么只有THBAN一条线保持不变呢?很抱歉,我会解释,但实际上我的意思是,在固定线之后,我在发布我的答案时刚刚看到了你的答案。你得到了我的投票。只是一个重击,我会在thban和C3I之前插入单词边界。我在发布我的答案时看到了你的答案。你得到了我的选票。再重复一遍,我会在thban和C3之前插入单词边界