![文本编辑器查找替换不同的词](https://linux22.com/image/1557024/%E6%96%87%E6%9C%AC%E7%BC%96%E8%BE%91%E5%99%A8%E6%9F%A5%E6%89%BE%E6%9B%BF%E6%8D%A2%E4%B8%8D%E5%90%8C%E7%9A%84%E8%AF%8D.png)
晚上好
我对一些文本编辑器有疑问。我在 Mac 上使用 CotEditor,我想查找和替换一些特殊内容。我有一个 .csv 数据,我将其转换为带有数字的 .txt 数据。在这个列表中有一些特殊的词,我想找到它们并删除所有其他词。
例如:
Going with fancy looking rig this week. **@aaw_sg** W500 CIEM, with gold and silver flakes, combined with @nullaudio cable and my faithful Shanling M5
或者
If you are in Czech republic this week, be sure to visit Audio Video show Praha 2018. Shanling will be represented by our Czech distributor Gothic @headphones.cz in room 332 on 3rd floor. Visit audio-video-show.cz for more info
我想要过滤所有@*!
背景是我想在 Instagram 上关注一些标记的网站,但不想点击每张图片并关注。
有人能帮我吗?
答案1
使用类似的东西@\S+
。
在哪里:
@
字面意思是“@”\S+
表示一个或多个非空格的任意字符。
根据评论编辑:
使用 notepad++,你可以一次性完成:( 它也适用于 SublimeText)
- Ctrl+H
- 找什么:
(?:^|\G)[^@]+(@\S+|$)
- 用。。。来代替:
$1\n
- 检查环绕
- 检查正则表达式
- Replace all
解释:
(?: : non capture group
^ : beginning of line
| : R
\G : position of last match
) : end group
[^@]+ : 1 or more any character that is not @
( : start group 1
@\S+ : @ followed by any non space character
| : OR
$ : end of line
) : end group 1
替代品:
$1 : content of group 1
\n : line feed, you could change it for the linebreak you need
给定示例的结果:
@aaw_sg
@nullaudio
@headphones.cz
答案2
如果您的正则表达式的用途是 Instagram 帐户特定的,@[a-zA-Z0-9._]+
那么将是查找字符串。
参见Instagram 用户名的字符限制 - Stack Overflow
删除所有非帐户字符的正则表达式
以下两步正则表达式将删除所有字符但保留 Instagram 帐户。
- 删除所有非帐户角色
- 查找字符串:
(@[a-zA-Z0-9._]+|^)(.+?)(?=@|$)
- 替换字符串:
$1
- 查找字符串:
- 在帐户之间插入空格
- 查找字符串:
(?<=[a-zA-Z0-9._])@
- 更换刺针:
@
- 查找字符串:
答案3
在库达文本编辑器(免费)您可以使用@nnn 帐户创建新的文本文件:
- 调用“查找”对话框,输入正则表达式
@[\w\.]+
- 按“全选”按钮
- 将选择复制到剪贴板(编辑/复制)
- 创建新标签,从剪贴板粘贴(编辑/粘贴)