Notepad++:复杂的查找和替换

Notepad++: Complex Find and Replace

我有如下:

T47101 UNIPROID FGFR1_HUMAN T47101 ECNUMBER EC 2.7.10.1 T47101 SEQUENCE MWSWKCLLFWAVLVTATLCTARPSPTLPEQAQPWGAPVEVESFLVHPGDLLQLRCRLRDDVQSINWLRDGVQLAESNRTRITGEEVEVQDSVPADSGLYACVT T47101 DRUGINFO D09HNV Intedanib Approved T47101 DRUGINFO D01PZD Romiplostim Approved T47101 DRUGINFO D02WVT E-3810 Phase 3

这里有很多填充物。我唯一感兴趣的是 UNIPROID 后面的词,它们总是不同但后面总是包含 _HUMAN。我想保留该信息(例如 FGFR1_HUMAN)。

那么我感兴趣的另一件事是 SEQUENCE 一词之后的所有内容。我想保留后面的字母。除了这两个加粗的东西之外的所有东西我都想去掉。

我没有太多使用这个的经验,所以我需要我能得到的所有帮助。

这是我目前拥有的:

查找:.+UNIPROID(\D).+

我检查了正则表达式并且未检查匹配换行符。

编辑:我现在的命令能够删除 FGFR1_Human 之前的所有内容,但我不确定如何继续。

你可以

查找内容:

.+?(?|UNIPROID\h+(\w+_HUMAN)|SEQUENCE\h+(\w+)|$)

模式匹配

  • .+? 匹配除换行符以外的任何字符 1+ 次非贪婪(惰性)
  • (?| 分支重置组,使用组 1 进行两次交替
    • UNIPROID\h+(\w+_HUMAN) 匹配 UNIPROID,1+ 个水平空白字符并捕获 1+ 个单词字符和第 1 组 _HUMAN
    • |
    • SEQUENCE\h+(\w+) 匹配 SEQUENCE,1+ 个水平空白字符并捕获组 2
    • 中的 1+ 个单词字符
    • |
    • $ 字符串结尾也匹配最后一部分
  • ) 关闭群组

替换为:


Regex demo