![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 107 Pomógł: 1 Dołączył: 3.06.2010 Ostrzeżenie: (0%) ![]() ![]() |
Witam.
Ostatnio staram sie stworzyc pewna strone. Niestety regexow nie ogarniam wogole. Posił bym o zbudowanie regexa ktory wyciagał by takie : http://apps.facebook.com/monster-world/?st...39-514AD9B643F6 linki. Wiem że dla was to minuta a ja będe meczył się nastepny miesiac. Tak prosze o gotowca. Mam nadzieje ze zrozumiecie. |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 1 890 Pomógł: 339 Dołączył: 14.12.2006 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Rozumiem brak umiejętności, ale czystego lenistwa jakoś nie potrafię.
https://www.google.pl/search?q=regex+to+get+urls - pierwszy wynik z Google i już masz odpowiedź z przykładem. |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 107 Pomógł: 1 Dołączył: 3.06.2010 Ostrzeżenie: (0%) ![]() ![]() |
Up, dziekuje za link z googla. Chodzi mi o to żeby mieć pewność że żaden inny link sie tam nie wkradnie.
czy mozesz potwierdzić mi czy ten : \b(https?|ftp|file)://[-A-Z0-9+&@#/%?=~_|!:,.;]*[A-Z0-9+&@#/%=~_|] regex mi to zapewni? |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 2 958 Pomógł: 574 Dołączył: 23.09.2008 Skąd: wiesz, że tu jestem? Ostrzeżenie: (0%) ![]() ![]() |
Sam, możesz to sprawdzić np. tu http://www.rexv.org/
|
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 107 Pomógł: 1 Dołączył: 3.06.2010 Ostrzeżenie: (0%) ![]() ![]() |
Mam nadzieje ze wybaczycie.
Oto moj kod. Chodzi mi o wyciagniecie wszystkich linków z tekstu. Niestety regex który znalazłem nie potrafi sobie z tym poradzić i zwraca mi to :
Prosze o jakies sugestie. ref ref |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 590 Pomógł: 107 Dołączył: 25.10.2011 Ostrzeżenie: (0%) ![]() ![]() |
Niestety regex który znalazłem nie potrafi sobie z tym poradzić i zwraca mi to : I dobrze zwraca. Spróbuj tego: Kod $pattern = "/((http|https|ftp|ftps)\:\/\/[a-zA-Z0-9\-\.]+\.[a-zA-Z]{2,3}(\/\S*)?)/"; FYI: dodałem tylko dwa nawiasy (na początku i końcu) - ale powinno pomóc. Nie testowałem. I nie podbijaj postów. |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 107 Pomógł: 1 Dołączył: 3.06.2010 Ostrzeżenie: (0%) ![]() ![]() |
Regex teoretycznie dziala.
Teraz pojawia sie problem bo wyciaga nie wszystkie linki. Zwraca mi tylko 4 elementową tablice, a linkow jest ponad 20. Być moze popełniłem gdzieś elementarny bład, prosze o poprawienie mnie. |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 590 Pomógł: 107 Dołączył: 25.10.2011 Ostrzeżenie: (0%) ![]() ![]() |
Spróbuj użyć preg_match_all - na razie nic więcej nie jestem w stanie powiedzieć - nie wiem, w jakiej postaci masz tekst, w którym są adresy, a to w sumie podstawa. Przydałoby się ciutkę opisu/kodu, bez tego to błądzenie we mgle.
|
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 107 Pomógł: 1 Dołączył: 3.06.2010 Ostrzeżenie: (0%) ![]() ![]() |
Chodzi o to ze linki beda wprowadzane przez uzytkownika. i chce je dodac oddzielnie do bazy. Linki beda oddzielone prawdopodobnie enterem.
|
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 590 Pomógł: 107 Dołączył: 25.10.2011 Ostrzeżenie: (0%) ![]() ![]() |
No to wprowadzone dane (przez usera) ładujesz do zmiennej i jedziesz z preg_match_all - najprawdopodobniej dostaniesz wielowymiarową tablicę, po której będziesz musiał iterować, ale to nie powinno być problemem, prawda?
|
|
|
![]()
Post
#11
|
|
Grupa: Zarejestrowani Postów: 371 Pomógł: 30 Dołączył: 14.04.2010 Ostrzeżenie: (0%) ![]() ![]() |
Witam,
odświeżam nieco temat. Potrzebuję zbudować regex który akceptuje wszystkie znaki narodowe, alfanumeryczne, kilka specjalnych: ' . , - / @. Udało mi się utworzyć takie wyrażenie ale nie uwzględniało znaków narodowych - a one muszą być i zapytanie muszę zbudować od nowa. Umie ktoś pomóc, podpowiedzieć? |
|
|
![]()
Post
#12
|
|
Grupa: Zarejestrowani Postów: 279 Pomógł: 36 Dołączył: 1.03.2012 Ostrzeżenie: (0%) ![]() ![]() |
Widziałeś ten temat? Pokaż co udało Ci się napisać, coś doradzimy.
Ten post edytował kristaps 28.01.2013, 14:53:30 |
|
|
![]()
Post
#13
|
|
Grupa: Zarejestrowani Postów: 371 Pomógł: 30 Dołączył: 14.04.2010 Ostrzeżenie: (0%) ![]() ![]() |
Nie widziałem tamtego tematu. Ale go teraz przejrzałem. To udało mi się zrobić:
Kod /(\p{L})+/u I zawsze jest prawda, czyli przepuszcza wszystko. A w tamtym temacie nawet ktoś potrzebował podobnego wyrażenia i w odpowiedzi otrzymał: Kod #[\p{L}0-9.-_]+#u Ale to jakoś nie działa ;/ Tzn. zwraca true dla znaku np. $ Pokombinowałem nieco i dodałem: Kod /[\p{L}\x20\x2C\x2E\x27\x2D\x40\x5F\x2F]+/u No ale to zezwala na znaki specjalne, a mi zależy by przepuszczało tylko te wymienione. Czyli oba wyrażenia działają tak samo. Edit: Wyrażenia działają tak: -wpiszę znak specjalny spoza listy - fałsz -wpiszę tekst i znak specjalny, np. tekst*** - prawda Edit2: Problem rozwiązany. Wyrażenie działa w php i js. Dzięki kristaps za podrzucenie linku, naprowadziło mnie to nieco. Szkoda że nikt inny nie chciał pomóc ale najwyraźniej nikt nie potrafił/nie miał czasu. Jeśli ktoś będzie miał podobny problem to zapraszam na priv. Ten post edytował webmaniak 29.01.2013, 18:30:56 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 4.10.2025 - 15:12 |