-1

C#Web アプリにエンコード文字列があります。

&lt;a href=&quot;/product.aspx?zpid=564&quot;&gt;American Arborvitae &lt;/a&gt;-10 - 10<br />&lt;a href=&quot;/product.aspx?zpid=647&quot;&gt;Black Walnut &lt;/a&gt;-1 - 1<br /> <br />

それは次のようにデコードされます:

"<a href=\"/product.aspx?zpid=564\">American Arborvitae</a>-10 - 10<br /><a href=\"/product.aspx?zpid=647\">Black Walnut </a>-1 - 1<br /> <br />"

regexとの間の値を取得するために a を使用する比較的簡単な方法は</a>-10 - 10<br />あり</a>-1 - 1<br />ますか? 私は正規表現を構築するのが得意ではなく、このようなパターンを定義する方法が本当にわかりません。または、値を文字列配列に簡単に入れることができますか? エントリの数は、1 ~ 30 のようにさまざまです。

---- リクエストごとのユースケース ----

商品ページは大量の木のページです。ユーザーは、任意の金額を入力できます (上限は 1000)。季節や時期に応じて、1 ~ 30 本の木が植えられています。

4

2 に答える 2

0
var regex = new Regex("</a>(.*?)<br />");
var matches = regex.Matches("<a href=\"/product.aspx?zpid=564\">American Arborvitae</a>-10 - 10<br /><a href=\"/product.aspx?zpid=647\">Black Walnut </a>-1 - 1<br /> <br />");
foreach (Match match in matches)
   Console.WriteLine(match.Groups[1].Value);
Console.ReadLine();

-10 - 10 -1 - 1

于 2013-09-28T21:49:27.027 に答える
0

次の正規表現は完全に一致</a>-0 - 0<br />する</a>-99 - 99<br />ため、予想される数のアイテムを処理する必要があります。

var rx = new Regex(@"</a>-\d{1,2}\s-\s\d{1,2}<br\s*/>");

これを使用して、次のような文字列の配列を取得できます。

var parts = rx.Split("<a href=\"/product.aspx?zpid=564\">American Arborvitae</a>-10 - 10<br /><a href=\"/product.aspx?zpid=647\">Black Walnut </a>-1 - 1<br /> <br />");

結果は次のようになります。

    <a href="/product.aspx?zpid=564">アメリカクロベ科
    <a href="/product.aspx?zpid=647">ブラック ウォールナット
     <br />

後は君しだい。お役に立てれば!

于 2013-09-28T22:08:48.623 に答える