删除分号后的所有字符

deleting all characters after a semicolon

我在 Mac 上使用 sublime 我有这样的东西

Q21162;E5QCE7
E5QCF5;P91040
E5QCF6;E5QCF8;P34558
E5QCG0;Q09499
E5QCG2

我想摆脱第一个之后的一切; 所以我想要这样的输出

Q21162
E5QCF5
E5QCF6
E5QCG0
E5QCG2

regular expression 是你最好的朋友

忘掉你正在使用的 IDE 并研究一下如何使用正则表达式。

或者你可以使用 sublime 自带的正则表达式解析器:

https://docs.sublimetext.io/guide/usage/search-and-replace.html

这是您要查找的正则表达式:

s/[^;]*$//

我假设您想删除行中最后一次出现分号后的文本

以下正则表达式对我有用:

在 Sublime 中:

  1. 使用 CTRL + H 打开替换面板
  2. 确保正则表达式已启用。它是与搜索字段(ALT + R)在同一行的左侧图标“.*”。
  3. 在"Find What"中输入:^([^;]*);.*$
  4. 在"Replace With"中输入:
  5. 全部查找并替换

我在 Windows 上测试过,在 Mac 上你可能必须使用 CMD 而不是 CTRL 键。

使用正则表达式的替代方法是使用多光标编辑器 select 所有分号,然后突出显示到行尾,然后删除。

使用问题中的确切示例,这对我来说非常有效:

  1. 突出显示第一个;
  2. 按几次 Ctrl + d 以突出显示它的其他实例。
  3. 按住 Shift 键并点击结束以突出显示到行尾。
  4. 按删除键

在 Debian 上使用 Sublime 3 完成了 - 我想这也适用于其他地方?

正则表达式很棒,但在这种情况下有点过分了,几个键盘快捷键就可以很好地完成工作。