Notepad ++除了第一个单词和几个特殊单词之外,排除一行中的所有内容

时间:2013-12-24 20:54:13

标签: regex notepad++

你好我有一个文本,我希望删除除第一个单词和几个特殊单词之外的所有其他内容。

  极致 - 名词可达到的最高水平或程度;

     

默认 - 动词同意或表示同意

     坚持 - adj 不受恳求,劝说,要求,理性的影响; 名词非常坚硬的天然结晶碳,被视为宝石

     

引用 - 动词预先提供

的证据

在这里,我必须保留'第一个单词',“动词”,“adj”,“名词”并删除其他所有内容; 这样就变成了

  

acme 名词

     

默认动词

     

坚定 adj noun

     

引用动词

在Notepad ++中是否有任何Python脚本或正则表达式;感谢。

2 个答案:

答案 0 :(得分:3)

使用Notepad ++

尝试此操作

找到什么?

\s*[-;]\s*( adj| verb| noun)[^\r\n;]*(;$)?

或匹配其他单词,然后adj,werb,名词也是:

\s*[-;]\s*( \S+)[^\r\n;]+(;$)?

匹配 - 或;记住这个词并将所有内容替换为行尾或;用它。

替换为:

\1

enter image description here

答案 1 :(得分:1)

与您想要的匹配的正则表达式如下所示:

^(\w+)\s+-\s+(\w+)(?:.*?(?=(adj|verb|noun)))?(?:(?:noun|verb|adj)(?:.*)?)?

请参阅http://regex101.com/r/yR5jW5

上的演示

注意 - 这与“三个或更多特殊单词”不匹配。我没时间弄清楚为什么不呢;但它可能是显而易见的。这应该可以让你开始。