如何使用正则表达式在 Notepad++ 中隔离字符串部分并删除多余的部分?

如何使用正则表达式在 Notepad++ 中隔离字符串部分并删除多余的部分?

我试图隔离某一行的特定部分,并删除其后的所有内容。
下面是一些示例字符串,显示了文件的一般格式。我试图隔离这些行中的每一行,并删除 Collection-ID.Package-name 并删除。(版本)

DGL1PLAN_PUT_PFC.FCA#FKS.(CAD17_2013-01-30-21.35.29)
DSN8CC91.DSN8CLTC.(2015-01-14-16.33.06.616783)
DSNAOCLI.DSNCLICS.(UQ40167)
DSNJAR.DSNX9DIJ.(UK81051)

进入:

DGL1PLAN_PUT_PFC.FCA#FKS
DSN8CC91.DSN8CLTC
DSNAOCLI.DSNCLICS
DSNJAR.DSNX9DIJ

我还没有想出如何删除这些行,但我已经想出了(我认为)如何将它们单独隔离。我目前使用它^.*(?=..(CAD))来突出显示.()行之前的所有内容。我正在学习正则表达式,据我所知,谷歌搜索:
^是字符串的开头
.查找除换行符之外的任何字符
*查找 0 个或更多前一个类型
(开始搜索
?=是正向前瞻
..(CAD)是我用来突出显示要隔离的字符串的
)搜索词结束搜索
我不确定如何删除多余的部分,但已设法突出显示我想保留的部分。
这是我到目前为止已经弄清楚的图片:

试图

答案1

使用这个正则表达式:

\.\(.*

并将其替换为无(空白)。

解释:

  • \.\(- 匹配.并且(彼此相邻
  • .*- 以贪婪的方式匹配这些之后的所有内容,以尽可能多地匹配。请记住,. matches newline需要关闭该选项,否则它将匹配多行。

这比其他答案简单一些,因为它的作用相反——它删除了冗余部分,而保留了开头的部分。

答案2

您可以使用正则表达式:^(.*)\.\(CAD.*\)并在替换字段中输入$1。这将搜索字符串,然后是(CAD,然后是任何符号和)。并且仅打印第一组(在点和开括号之前)

如果您希望其他行也使用相同的操作,请使用正则表达式:^(.*)\.\(.*\)

下面演示了它的工作原理:https://regex101.com/r/wWC24q/1

相关内容