Problem z wyrażeniem regularnym.

0

[C# i Regex]
Mam dwa możliwe teksty:
<span>1 Puszka Piwa. <font id="dupa">
lub

<span>234 x Puszek Piwa.  <font id="dupa">

Napisałem wyrażenie:
<span>([0-9]+)( x)* (Puszka|Puszek) Piwa. <font id=\"dupa\">
Nie działa. Jakie powinno być poprawne wyrażenie?

0

Samo wyrażenie jest dobre (zamieniłbym tylko * na ? i dodał ?: do grup, których nie potrzebujesz przechwytywać), pokaż kod.

@Patryk27, nie da się sparsować HTML za pomocą samych wyrażeń regularnych. Widzisz, żeby parsował HTML? Bo ja nie. Parsowanie HTML to poznanie m.in. struktury drzewiastej, hierarchii elementów i tak dalej. A on robi to do czego wyrażenia regularne powstały - wyszukuje w ciągu tekstowym pewien inny ciąg i tyle.

0
Rev napisał(a):

Samo wyrażenie jest dobre (zamieniłbym tylko * na ? i dodał ?: do grup, których nie potrzebujesz przechwytywać), pokaż kod.

@Patryk27, nie da się sparsować HTML za pomocą samych wyrażeń regularnych. Widzisz, żeby parsował HTML? Bo ja nie. Parsowanie HTML to poznanie m.in. struktury drzewiastej, hierarchii elementów i tak dalej. A on robi to do czego wyrażenia regularne powstały - wyszukuje w ciągu tekstowym pewien inny ciąg i tyle.

Samo wyrażenie jest dobre (zamieniłbym tylko * na ? i dodał ?: do grup, których nie potrzebujesz przechwytywać), pokaż kod.

Jak użyć "?:", bo się z tym nie spotkałem w wyr. reg.

Fragment kodu:

...

1 użytkowników online, w tym zalogowanych: 0, gości: 1