我有一个文本文件,其中的行如下所示:('8510851205', 'needthishere', '', ''),我需要删除所有内容,只在每一行上保留 needthishere。我该怎么做:?
答案1
以下是我要做的。
- 搜索(搜索模式:正则表达式):.',\s' 替换为:\n
- 在“查找”窗口的“标记”选项卡中,为所有带有撇号的行添加书签(复选框)
- a)在“搜索”菜单中,选择“书签”,然后选择“反向书签”
- a)此时,你应该已经将这两行内容添加到书签中;你可以返回到相同的“搜索”->“书签”菜单,剪切/复制已添加书签的行
3b)在搜索菜单中,选择“删除书签行”,这样只会留下你感兴趣的两个部分
3b.
答案2
这是您正在寻找的简单正则表达式。
在 N++ 中,选择“查找”窗口中的“替换”选项卡。选中“正则表达式”框。
寻找:
^[^)]*\('[^']*',\s*'([^']*)'(?:,\s*''){2}\),?\s*$
代替:
\1
点击“全部替换”按钮。
作为示例,我对此文件运行了以下代码:
('8510851205', 'needthishere', '', '')
('2120986452', 'slthornton', '', ''),
('2121111111', 'strict_daddy4u', '', '')
输出:
needthishere
slthornton
strict_daddy4u
我本来可以把它写得更短一些,但我想确保我们匹配了四个字符串的全集,以防括号看起来不一样。请注意,这特别假设第三和第四个字符串为空。如果您想允许这些字符串中有字符,请使用以下代码:
^[^)]*\('[^']*',\s*'([^']*)'(?:,\s*'[^']*'){2}\),?\s*$
祝您度过愉快的一周!