←  OFF Topic

AMXX.pl: Support AMX Mod X i SourceMod

»

Wyrażenie regularne - jak skonstruować?


Najlepsza odpowiedź Ogen Dogen 29.05.2017 21:14

Regex nie nadaje się do HTML'a, może co najwyżej do nieskomplikowanych, statycznych stron. Polecam wątek - https://stackoverflo...-contained-tags

Jeżeli już tak bardzo się uparłeś to spróbuj takiego wzorca: (1 grupa to wartość, której szukasz)

>(.*)<\/span>
Przejdź do postu

  • +
  • -
Rivit - zdjęcie Rivit 28.05.2017

Witam.

Na wstępie zaznaczę, że mam zerowe doświadczenie w dziedzinie wyrażeń regularnych. Chcę się tego nauczyć. Jednak program wymaga ode mnie zastosowania regexa

 

 

Jak zbudować wyrażenie, które wyciągnie mi tekst ze środka. Już pokazuje

>Wtorek</span>
>T/s</span>
>pn k</span>

Nie wiem w ogóle jak się do tego zabrać.

Trzeba mi tylko wzorzec :/

Dziękuję.

 

 

Odpowiedz

  • +
  • -
Ogen Dogen - zdjęcie Ogen Dogen 28.05.2017

Domyślam się, że chcesz parsować HTML'a ? Jeśli tak to regex nie jest najlepszym wyborem, są gotowe biblioteki do parsowania HTML'a. Parser XML też powinien się nadać.

Napisz jaki język to postaram się coś doradzić, bo wnioskuje że pisząc w tym dziale nie chodzi o plugin AMXX ?

Odpowiedz

  • +
  • -
Rivit - zdjęcie Rivit 28.05.2017

C++

Tak to HTML. Nie da się regexem złapać?
Odpowiedz

  • +
  • -
plx211 - zdjęcie plx211 28.05.2017

da sie, ale lepiej tutaj sie sprawdzi parser HTML :)

Odpowiedz

  • +
  • -
Rivit - zdjęcie Rivit 29.05.2017

Jak to się takie cuda robi? :o
Odpowiedz

  • +
  • -
Rivit - zdjęcie Rivit 29.05.2017

Trochę pogrzebałem. Dajmy na to mam przykładowy tekst:

<tbody>

        <tr style="mso-yfti-irow:0;mso-yfti-firstrow:yes">

            <td rowspan="2" style="width:23.45pt;border:solid windowtext 1.5pt;

            padding:0cm 0cm 0cm 0cm" valign="top" width="39">

            <p class="MsoNormal" style="mso-margin-top-alt:auto;margin-bottom:

            0cm;margin-bottom:.0001pt;text-align:center;line-height:normal" align="center"><b><span style="font-size:9.0pt;font-family:&quot;Times New Roman&quot;,&quot;serif&quot;;mso-fareast-font-family:

            &quot;Times New Roman&quot;;mso-fareast-language:PL">Lekcja</span></b></p>

Do tego regex:

[>](.*)[<\/span>]

I to łapie mi to:

><b><span style="font-size:9.0pt;font-family:&quot;Times New Roman&quot;,&quot;serif&quot;;mso-fareast-font-f

i

>Lek</span></b></p>

Jak go poprawić, żeby łapał poprawnie :/

 

Testuje sobie na tej stronce: https://regex101.com/

 

 

Co do parsera. Spoko, ale ja najpierw chce regexem, bo tak :D :D

Odpowiedz

  • +
  • -
Najlepsza odpowiedź Ogen Dogen - zdjęcie Ogen Dogen 29.05.2017

Regex nie nadaje się do HTML'a, może co najwyżej do nieskomplikowanych, statycznych stron. Polecam wątek - https://stackoverflo...-contained-tags

Jeżeli już tak bardzo się uparłeś to spróbuj takiego wzorca: (1 grupa to wartość, której szukasz)

>(.*)<\/span>
Odpowiedz

  • +
  • -
Rivit - zdjęcie Rivit 30.05.2017

To statyczna strona. Sprawdzę i dam znać ;)

 

 

Wątek jak najbardziej spoko. Wyrażenie regularne:

>(.*)<\/span>

Daje takie efekty:

>D</span>
>B</span>
>Sił/t</span>
>MS</span>
>B</span>
>Ts/s</span>
>D</span>
>B</span>

 

 

Jak pozbyć się tego żeby zostało tylko to co wewnątrz?

Odpowiedz

  • +
  • -
Ogen Dogen - zdjęcie Ogen Dogen 30.05.2017


Jak pozbyć się tego żeby zostało tylko to co wewnątrz?

 


(1 grupa to wartość, której szukasz)
Odpowiedz