Regexp – vc++

Niesamowite możliwości udostępniają wyrażenia regularne. Istnieje narzędzie, które nazywa się Regex Builder w wersji 2.05, za jego pomocą można w wygodny sposób testować wyrażenia na dowolnym łańcuchu znaków, aby te prawidłowe móc potem użyć we własnym programie.

regex builder

I tak na przykład, aby wyciągnąć wartości i wykładniki z wielomianów za pomocą wyrażenia regularnego, możemy użyć następująco:

Regex ^expression = gcnew Regex(“x\\^(\\d+)”);
// wielomian jest dzielony wyrażeniem regularnym na poszczególne wykładniki (n>1)
expression = gcnew Regex(“[+-]*(\\d)*x[^^]|[+-][x]”);
// wielomian jest dzielony wyrażeniem regularnym na poszczególne wykładniki (n==1)
expression = gcnew Regex(“(.?)((\\d)+).”);
// wielomian jest dzielony wyrażeniem regularnym na poszczególne wykładniki (n==0)
MatchCollection ^polyMatch = expression->Matches(text);

5x+54+4784x^5+x+389x^2+5x+4x+3x+89x^3+2x^2+4+8x^8+5345+85x+4+x

Składowe wpisanego wielomianu:
współczynnik: 4784 wykładnik: 5
współczynnik: 389 wykładnik: 2
współczynnik: 89 wykładnik: 3
współczynnik: 2 wykładnik: 2
dodawanie współczynników: (389 + 2) x^2
współczynnik: 8 wykładnik: 8
współczynnik: 5 wykładnik: 1
współczynnik: 1 wykładnik: 1
(5 + 1) x^1
współczynnik: 5 wykładnik: 1
(6 + 5) x^1
współczynnik: 4 wykładnik: 1
(11 + 4) x^1
współczynnik: 3 wykładnik: 1
(15 + 3) x^1
współczynnik: 85 wykładnik: 1
(18 + 85) x^1
współczynnik: 1 wykładnik: 1
(103 + 1) x^1
współczynnik: 54 wykładnik: 0
współczynnik: 4 wykładnik: 0
(54 + 4) x^0
współczynnik: 5345 wykładnik: 0
(58 + 5345) x^0
współczynnik: 4 wykładnik: 0
(5403 + 4) x^0
ostatecznie w2: 8x^8 +4784x^5 +89x^3 +391x^2 +104x^1 +5407

Advertisements

Leave a Reply

Please log in using one of these methods to post your comment:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s