![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
![]() Grupa: Zarejestrowani Postów: 1 429 Pomógł: 195 Dołączył: 6.10.2008 Skąd: Kraków/Tomaszów Lubelski Ostrzeżenie: (0%) ![]() ![]() |
Witam, niestety w moim projekcie muszę użyć rzeczy, której totalnie nie rozumiem i nienawidzę
![]() I muszę z tych trzech tagów wybrać wartości liczbowe. Jak widać zmienia się tylko "id" taga oraz sama wartość w tagu którą chcę pozyskać. Próbowałem różnych kombinacji z grupowaniem ale nie działa to tak jak bym chciał... -------------------- O! Zimniok :P
|
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 915 Pomógł: 210 Dołączył: 8.09.2009 Skąd: Tomaszów Lubelski/Wrocław Ostrzeżenie: (0%) ![]() ![]() |
Wyrażenia regularne nie za bardzo nadają się do parsowania HTML. http://www.mostthingsweb.com/2013/02/parsing-html-with-c/ Jeśli natomiast musisz skorzystać z wyrażeń regularnych to może:
Kod /<span id="num_[a-z]" class="">(.*?)?<\/span>/s
-------------------- |
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 1 429 Pomógł: 195 Dołączył: 6.10.2008 Skąd: Kraków/Tomaszów Lubelski Ostrzeżenie: (0%) ![]() ![]() |
Coś w tym stylu tylko zamiast tych [a-z] to musi być wyraz. Trochę faktycznie wprowadziłem w błąd bo gdyby to było sama jedna literka to nie byłoby takie trudne ale tu mam coś takiego bardziej.
czyli wieloliterowe słowa. Oczywiście próbowałem z grupowaniem (.+) a także z alternatywą (jeden|dwa|trzy) tyle że mi to nie działa. -------------------- O! Zimniok :P
|
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 1 933 Pomógł: 460 Dołączył: 2.04.2010 Skąd: Lublin Ostrzeżenie: (0%) ![]() ![]() |
A zwykłe [a-z]+ nie wystarczy?
-------------------- Jeśli pomogłem, kliknij proszę 'pomógł'. Dzięki.
|
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 1 429 Pomógł: 195 Dołączył: 6.10.2008 Skąd: Kraków/Tomaszów Lubelski Ostrzeżenie: (0%) ![]() ![]() |
nie działa -------------------- O! Zimniok :P
|
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 467 Pomógł: 77 Dołączył: 6.09.2008 Skąd: Miechów / Kraków Ostrzeżenie: (0%) ![]() ![]() |
Co prawda projekt jest w C++ ale to chyba jedno i to samo jeżeli chodzi o wyrażenie regularne. Niestety to nie jest jedno i to samo. PHP korzysta z POSIX oraz PCRE natomiast C++ z wyrażeń regularncyh ECMAScript. To wyrażenie nie zadziała ponieważ "." oznacza wszystko oprócz nowej linii dlatego trzeba dodać do wyrażenia obsługę nowych linii. Całość wygląda tak: Kod <span id=\"num_[a-z]+\" class="">((?:.|\n)*)</span> Dodatkowo polecam aby zapoznać się z tym: http://www.cplusplus.com/reference/regex/ECMAScript/ -------------------- Niemożliwym jest stworzenie czegokolwiek idiotoodpornego, ponieważ idioci są wyjątkowo pomysłowi.
https://www.aroch.pl https://themeforest.net/user/aroch https://www.astroblog.aroch.pl https://www.4geeks.pl |
|
|
![]()
Post
#7
|
|
![]() Grupa: Zarejestrowani Postów: 1 429 Pomógł: 195 Dołączył: 6.10.2008 Skąd: Kraków/Tomaszów Lubelski Ostrzeżenie: (0%) ![]() ![]() |
Niestety też nie działa. Może te spacje między wartością a tagami też coś psują?
-------------------- O! Zimniok :P
|
|
|
![]()
Post
#8
|
|
![]() Grupa: Zarejestrowani Postów: 702 Pomógł: 65 Dołączył: 16.03.2009 Ostrzeżenie: (0%) ![]() ![]() |
litera "i" na końcu pomoże pominąć spacje
![]() -------------------- Nie udzielam pomocy poprzez PW
|
|
|
![]()
Post
#9
|
|
![]() Grupa: Zarejestrowani Postów: 1 429 Pomógł: 195 Dołączył: 6.10.2008 Skąd: Kraków/Tomaszów Lubelski Ostrzeżenie: (0%) ![]() ![]() |
Chyba nie. W dokumentacji nie ma nic z samym "i". Próbowałem dodać i nie pomogło. W c++ za spacje chyba odpowiada \s (też próbowałem)
Co ciekawe nawet takigo czegoś nie znajduje Kod std::regex pattern("<span id=\"num_jeden\" class="">")
Ten post edytował MateuszS 18.07.2013, 21:35:39 -------------------- O! Zimniok :P
|
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 467 Pomógł: 77 Dołączył: 6.09.2008 Skąd: Miechów / Kraków Ostrzeżenie: (0%) ![]() ![]() |
Mógłbyś podać ten kawałek kodu, w którym wykonujesz sprawdzanie?
-------------------- Niemożliwym jest stworzenie czegokolwiek idiotoodpornego, ponieważ idioci są wyjątkowo pomysłowi.
https://www.aroch.pl https://themeforest.net/user/aroch https://www.astroblog.aroch.pl https://www.4geeks.pl |
|
|
![]()
Post
#11
|
|
![]() Grupa: Zarejestrowani Postów: 1 429 Pomógł: 195 Dołączył: 6.10.2008 Skąd: Kraków/Tomaszów Lubelski Ostrzeżenie: (0%) ![]() ![]() |
Z tego co się dowiedziałem chodzi o różne kodowanie znaków na stronie z której pobieram dane (UTF-8) i inne w konsoli C++. Mimo że oba stringi wyglądają identycznie, gdy je porównujemy program twierdzi że są różne.
-------------------- O! Zimniok :P
|
|
|
![]()
Post
#12
|
|
Grupa: Zarejestrowani Postów: 467 Pomógł: 77 Dołączył: 6.09.2008 Skąd: Miechów / Kraków Ostrzeżenie: (0%) ![]() ![]() |
W takim razie wstaw tekst na sztywno do kodu, w tedy będziesz wiedział czy to wina kodowania czy wyrażenia.
-------------------- Niemożliwym jest stworzenie czegokolwiek idiotoodpornego, ponieważ idioci są wyjątkowo pomysłowi.
https://www.aroch.pl https://themeforest.net/user/aroch https://www.astroblog.aroch.pl https://www.4geeks.pl |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 18.06.2025 - 06:43 |