2016-10-06 10 views
1

ここでこの正規表現は、最初の4行に一致するいくつかの入力が一致するように正規表現パターンを必要とする「 - 」

36 1 36 0ef6c0 id  N8 Online  FC F-Port 50:05:07:68:01:80:fc:ae 
37 1 37 0ef680 id  N8 Online  FC F-Port 50:05:07:68:01:80:fa:1b 
38 1 38 0ef640 id  N8 Online  FC F-Port 50:05:07:68:01:80:fa:2e 
    39 1 39 0ef600 id  N8 Online  FC F-Port 50:05:07:68:01:80:f9:ca 
86 2 22 0eea40 -- -- Online  VE VE-Port 10:00:00:05:33:ea:da:4d "replsa2v" (downstream) 
87 2 23 0eea00 -- -- Offline  VE Disabled (Persistent) 
88 2 24 0ee9c0 -- -- Offline  VE Disabled (Persistent) 

です。

(?<index>\d+)\s+(?<slot>\d+)\s+(?<port>\d+)\s+(?<address>\w{6,})\s+\b(id|cu)\b\s+(?<speed>\w\d+)\s+\b(?<state>\w+)\s+(?<protocol>\S+)\s+(?<type>\S+)\s(?<extra>.*) 

この1つは、私はすべてに一致する一つのパターンのようにしたい最後の3

(?<index>\d+)\s+(?<slot>\d+)\s+(?<port>\d+)\s+(?<address>\w{6,})\s+[-]{2}\s+[-]{2}\s+\b(?<state>\w+)\s+(?<protocol>\S+)\s+(?<type>\S+)\s(?<extra>.*) 

と一致します。コードは機能しますが、1つのマッチを実行していた場合は、よりクリーンで、少し速くなります。私が1つのパターンでできることは、最初の4行の入力の最初の半分と最後の3の最後の半分を一致させることです。私にとって

+0

私は知りませんでしたが、ワード「ヘルプ」に対するフィルタがありました。 Helopは意図的ではなくタイプミスでした。 –

+0

編集したタイトルははるかに良いですが、あなたがまだ尋ねていることを本当に説明していません。マッチング* - *はとても簡単です。あなたはそれ以上のことをしようとしていますね。 (過去のフィルタを取得するためのスペルミスはここで頻繁に発生します。)それはもはや必要ではないので、私はコメントを削除します。 :-) –

答えて

0

この作品:

(?<index>\d+)\s+ 
(?<slot>\d+)\s+ 
(?<port>\d+)\s+ 
(?<address>\w{6,})\s+ 
(id|cu|-{2})\s+ 
(?<speed>\w\d+|-{2})\s+ 
\b(?<state>\w+)\s+ 
(?<protocol>\S+)\s+ 
(?<type>\S+)\s 
(?<extra>.*) 
+0

ありがとうございます。あなたのことを見ると、間違ってパターンに\ b \ bタグを残していました。 –

関連する問題