全部替换,“但是”正则表达式 Notepad++

全部替换,“但是”正则表达式 Notepad++

我有一个文本文件,其中的行如下所示:('8510851205', 'needthishere', '', ''),我需要删除所有内容,只在每一行上保留 needthishere。我该怎么做:?

答案1

以下是我要做的。

  1. 搜索(搜索模式:正则表达式):.',\s' 替换为:\n
  2. 在“查找”窗口的“标记”选项卡中,为所有带有撇号的行添加书签(复选框)
  3. a)在“搜索”菜单中,选择“书签”,然后选择“反向书签”
  4. a)此时,你应该已经将这两行内容添加到书签中;你可以返回到相同的“搜索”->“书签”菜单,剪切/复制已添加书签的行

3b)在搜索菜单中,选择“删除书签行”,这样只会留下你感兴趣的两个部分

在此处输入图片描述

  1. 在此处输入图片描述

  2. 在此处输入图片描述

3b.在此处输入图片描述

答案2

这是您正在寻找的简单正则表达式。

在 N++ 中,选择“查找”窗口中的“替换”选项卡。选中“正则表达式”框。

寻找:

^[^)]*\('[^']*',\s*'([^']*)'(?:,\s*''){2}\),?\s*$

代替:

\1

点击“全部替换”按钮。

作为示例,我对此文件运行了以下代码:

('8510851205', 'needthishere', '', '')
('2120986452', 'slthornton', '', ''), 
('2121111111', 'strict_daddy4u', '', '')

输出:

needthishere
slthornton
strict_daddy4u

我本来可以把它写得更短一些,但我想确保我们匹配了四个字符串的全集,以防括号看起来不一样。请注意,这特别假设第三和第四个字符串为空。如果您想允许这些字符串中有字符,请使用以下代码:

^[^)]*\('[^']*',\s*'([^']*)'(?:,\s*'[^']*'){2}\),?\s*$

祝您度过愉快的一周!

相关内容