0

適切な形式の XML を抽出したい大量のジャンク データを含むファイルがあります。

私が抽出したいビットはこれです:

<random stuff....;'/>
<GET_FW_VERSION
   FIRMWARE_VERSION = "1.77"
   FIRMWARE_DATE = "Apr 23 2009"
   MANAGEMENT_PROCESSOR = "iLO2"
   LICENSE_TYPE = "iLO 2 Advanced"
    />
more non xml stuff

だから私はただ取り出したい<GET_FW_VERSION>

私はこれを次のように行っていました:

string FW_VERSION = Regex.Match(result, "<GET_FW_VERSION>.*</GET_FW_VERSION>", RegexOptions.Singleline).ToString();

しかし、これで終わりではありません</GET_FW_VERSION>

その正規表現を書く別の方法はありますか?

4

2 に答える 2

0

これは、属性値にシーケンス「/>」が含まれていない限り機能します。

string FW_VERSION = Regex.Match(result, 
   "<GET_FW_VERSION.*/>|<GET_FW_VERSION.*>.*</GET_FW_VERSION>", 
   RegexOptions.Singleline).ToString();
于 2013-01-10T02:26:47.500 に答える
0

.正規表現では次のことを意味することに注意してください。

. ワイルドカード: を除く任意の 1 文字に一致します。\n

この正規表現を使用してみてください:

(?:<GET_FW_VERSION[^>]*>|<GET_FW_VERSION[^>]*>.*</GET_FW_VERSION>)

説明:

| 縦棒|文字で区切られた任意の 1 つの要素に一致します。

[^character_group] 否定: にない任意の 1 文字に一致しcharacter_groupます。

(?:subexpression) 非キャプチャ グループを定義します。

于 2013-01-10T06:16:38.240 に答える