Regexp pentru a obține text în tag-uri

voturi
2

Am nevoie de o expresii regulate pentru a obține textul în termen de 2 tag - uri.

Să spun că vreau o matrice care conține returnat orice text în <data> și </data> tag - uri. Sau orice text din cadrul „(“ și „)“ tag - uri.

Cum pot face asta cu RegEx lui în C #?


O întrebare avansată ar fi:

  1. Șirul de intrare este color = rgb (50,20,30)
  2. Cum pot obține cele 3 numere din 3 sloturi matrice separate returnat de procesorul RegEx în C #?
Întrebat 09/12/2008 la 17:10
sursa de către utilizator
În alte limbi...                            


5 răspunsuri

voturi
4

Perl regexp ar fi

$string =~ /color=rgb\((\d+),(\d+),(\d+)\)/;
@array = ($1,$2,$3);

Dar, probabil, ai nevoie de mai multe informații că acest lucru.

Publicat 09/12/2008 la 17:13
sursa de către utilizator

voturi
3

Din moment ce ați menționat în mod specific C #, iată cum fac asta parsarea exactă:

private static readonly Regex RgbValuePattern = new Regex(@"(?<r>\d{1,3}) ?, ?(?<g>\d{1,3}) ?, ?(?<b>\d{1,3})",
                                                          RegexOptions.Compiled | RegexOptions.ExplicitCapture);

Apoi, mai târziu ...

var match = RgbValuePattern.Match(value);

if (match.Success)
{
    int r = Int32.Parse(match.Groups["r"].Value, NumberFormatInfo.InvariantInfo);
    int g = Int32.Parse(match.Groups["g"].Value, NumberFormatInfo.InvariantInfo);
    int b = Int32.Parse(match.Groups["b"].Value, NumberFormatInfo.InvariantInfo);
    return Color.FromArgb(r, g, b);
}
Publicat 09/12/2008 la 18:29
sursa de către utilizator

voturi
1

Utilizarea Regex pentru a analiza XML este de obicei o idee foarte proastă. A se vedea acest răspuns .

Publicat 14/11/2009 la 01:03
sursa de către utilizator

voturi
1

Această întrebare similară are răspunsuri care vor ajuta:

Publicat 09/12/2008 la 17:54
sursa de către utilizator

voturi
0

Cred că vor apărea probleme reale atunci când doriți pentru a analiza constructe cuibărit. De exemplu, atunci când doriți să examineze XML ca acest lucru <data><data>123</data><data>456</data></data> pentru a extrage date incluse în ultraperiferice <data>tag - uri un RegEx singură nu ar fi de ajuns. Doar avertiza să nu utilizați RegEx în cazul în care există unele metode mai (puternice și specifice). Parsers Real XML ar trebui luate în considerare atunci când faci sarcini mai complexe pe XML. 2 cenți mea ...

Publicat 09/12/2008 la 17:35
sursa de către utilizator

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more