0

我有这样的命令输出

hdisk10                  128000         200B75Y4191001707210790003IBMfcp
hdisk11                  128000         200B75Y4191001807210790003IBMfcp
hdisk13                  128000         200B75Y4191001A07210790003IBMfcp
hdisk14                  128000         200B75Y4191001B07210790003IBMfcp
hdisk15                  128000         200B75Y4191001C07210790003IBMfcp
hdisk16                  128000         200B75Y4191001D07210790003IBMfcp
hdisk17                  128000         200B75Y4191001E07210790003IBMfcp
hdisk18                  128000         200B75Y4191001F07210790003IBMfcp
hdisk19                  128000         200B75Y4191002007210790003IBMfcp

hdisk我只想要包含名称的第一列。我想删除hdiskXX每一行中的所有内容。XX可以是1-3位数,多为2位数。

我尝试了以下正则表达式

寻找 : hdisk[0-9][0-9].*

替换: :hdisk[0-9][0-9]

但结果字符串就像hdisk[0-9][0-9]而不是hdisk10. 为什么它不解释[0-9]为正则表达式并简单地按字面意思对待它?

我应该在这里使用什么正则表达式来完成我想要的?

我在支持正则表达式搜索和替换的 Notepad++ 上尝试这个。

4

2 回答 2

3

您需要使用捕获组。尝试搜索(hdisk[0-9]+).*并将其替换为\1.

\1意思是“在第一个括号内找到的任何东西”

(参考: http: //ozansafi.wordpress.com/2008/12/11/notepad-regular-expression-usage/

于 2012-05-09T09:43:21.547 回答
1

这是非常普遍的,但应该工作。查找\s+\d+\s+200B.*并替换为空字符串。我不确定您是否可以在记事本++中使用 \d 和 + ...自己检查

于 2012-05-09T09:43:55.553 回答