![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 897 Pomógł: 40 Dołączył: 16.12.2003 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Witam,
niestety nie jestem za mocny w wyrażeniach regularnych no i mam wydaje się banalny problem. Próbuję znaleźć w ciągu wyrazy krótsze niż 4 znaki i usunąć je z ciągu... Próbuję tego:
Coś jest nie tak... Jakby ktoś coś podpowiedział, będę wdzięczny! -------------------- how many SEO experts does it take to change a light bulb,lightbulb,light,bulb,lamp,lighting,switch,sex,xxx
5-Reasons-why-you-should-NEVER-fix-a-computer-for-free |
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 561 Pomógł: 75 Dołączył: 19.08.2004 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
A ja bym ominął regularne:
-------------------- Idąc po czyichś śladach, nie zajdziesz ani kroku dalej...
|
|
|
![]()
Post
#3
|
|
![]() Grupa: Przyjaciele php.pl Postów: 1 595 Pomógł: 282 Dołączył: 24.09.2007 Skąd: Reda, Pomorskie. Ostrzeżenie: (0%) ![]() ![]() |
to działa:
$str = 'abc defg hi j kllmno prs'; echo "1. ($str)<br />"; $str = preg_replace('/^|\s/', ' \_0 ', $str); ('backslash zero spacja'- wywalić podkreślenie) $str = preg_replace('/(\s)(\S){1,3}(\s)/', '', $str); $str = preg_replace('/(^|\s)\s/', '\1', $str); echo "2. ($str)"; Edit1: poprawka dla powtarzających się sekwencji (dlatego zostawało j...) Edit2: zmiana znaczników z php na code Edit3: zmiana nie pomogła - w ogóle wywalam znaczniki... Edit4: zmiana nie pomogła dalej nie wyświetla sekwencji \_0 (backslash zero - wywalić podkreślenie) Edit5: Ten edytor jest do dupy, to już któryś raz kiedy nie pozwala mi przedstawić poprawnego składniowo kodu PHP... Ten post edytował nospor 1.02.2008, 08:39:44 -------------------- - Oh no, my young coder. You will find that it is you who are mistaken, about a great many things... - |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 897 Pomógł: 40 Dołączył: 16.12.2003 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Hm jednak jeszcze nie do końca... Zobacz, że zostaje "j"... usuwa spację sprzed niego, ale zostawia... A zobacz, co się dzieje, jak będzie tam jeszcze jeden znak pojedynczy: $str = 'abc defg hi j kllmno X prs'; Zwróci: 'defgj kllmnoprs' :/
--edit O, ekstra, dzięki. Działa jak trzeba, zaraz dokładnie sobie przeanalizuję całość. @Grzyw - wiem, że można to explodem potraktować, ale od tego są właśnie wyrażenia regularne ![]() --edit2 Hm, prawie działa... nie wycina znaków na końcu ciągu... :/ -------------------- how many SEO experts does it take to change a light bulb,lightbulb,light,bulb,lamp,lighting,switch,sex,xxx
5-Reasons-why-you-should-NEVER-fix-a-computer-for-free |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 44 Pomógł: 2 Dołączył: 27.03.2007 Skąd: Sufczyn Ostrzeżenie: (0%) ![]() ![]() |
Tak bo z tego co widzę to to wyrażenie zamienia znaki kończące się jakimkolwiek odstępem. Także jeśli po znakach nie będzie spacji, tabulatora lub entera to nie zadziała
|
|
|
![]()
Post
#6
|
|
![]() Grupa: Przyjaciele php.pl Postów: 1 595 Pomógł: 282 Dołączył: 24.09.2007 Skąd: Reda, Pomorskie. Ostrzeżenie: (0%) ![]() ![]() |
to już chyba ostatnia korekta, podmień czwartą linjkę na:
-------------------- - Oh no, my young coder. You will find that it is you who are mistaken, about a great many things... - |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 897 Pomógł: 40 Dołączył: 16.12.2003 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
W tej chwili zostawia tylko spacje na początku i na końcu, ale to narazie sobie potraktuję trim()-em, a potem dorzucę to do regexpa. Dzięki wielkie!
-------------------- how many SEO experts does it take to change a light bulb,lightbulb,light,bulb,lamp,lighting,switch,sex,xxx
5-Reasons-why-you-should-NEVER-fix-a-computer-for-free |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 24.07.2025 - 21:48 |