我应该为这个样本使用什么正则表达式?

时间:2012-05-09 09:40:52

标签: regex notepad++

我有一个像这样的命令输出

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 ++上尝试这个,它支持正则表达式搜索和替换。

2 个答案:

答案 0 :(得分:3)

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

\1表示“在第一个括号内找到的任何内容”

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

答案 1 :(得分:1)

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