0

私はC#でこのパターンを持っています:

 string WWPNMatchString = @"port-wwn\s+\(vendor\)\s+:(?<wwpn>..:..:..:..:..:..:..:..)";

ファイル内でペアで数回発生する次の2行を含むファイルがあります。

ポート wwn (ベンダー) :50:01:73:80:12:60:01:41
永久ポート wwn (ベンダー) :50:01:73:80:12:60:01:41

最初の行だけを一致させたい。私が解析しているデータを台無しにする他の行があります。2 行目は次のようになります。

ですから、permanent を含む行には一致させたくありません。着信文字列をチェックするために別の if を行うこともできますが、それは面倒です。正規表現をチェックするために使用するオンライン サイトは 2 行目で失敗しますが、C# はコードがコンパイルされた後は失敗しません。

4

3 に答える 3

0

私が望まないパターンは常に 00 で始まることに気がつきました:

だから私は正規表現を次のように変更しました:

string WWPNMatchString = @"port-wwn\s+\(vendor\)\s+:(?<wwpn>[1-9].:..:..:..:..:..:..:..)";

これにより、wwpn グループが 0 で始まるものはすべて除外されます - 私が求めている値は、有効な値が 0 で始まることはありません。

于 2012-09-06T02:30:46.093 に答える
0

正規表現

string WWPNMatchString = @"^port-wwn\s+\(vendor\)\s+:(?<wwpn>..:..:..:..:..:..:..:..)";
于 2012-09-06T02:31:30.720 に答える
0

ファイルを1行ずつ読んでいて、各行が個別の文字列として処理されていると思いますか?

^次のように を使用して、一致を強制的に文字列の先頭から開始することができます。

@"^port-wwn\s+\(ven...

これにより、「permanent-」で始まる行が除外されます。

于 2012-09-06T02:34:33.667 に答える