![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 25 Pomógł: 0 Dołączył: 13.01.2004 Ostrzeżenie: (0%) ![]() ![]() |
hej,
Potrzebne mi wyrażenie regularne które do każdej linii tekstu doda tyle spacji, żeby każda linia miała określoną długość (powiedzmy x). Jednym z pomysłów jakie mam na rozwiązanie tego problemu, to dodawanie po jednej spacji do linii zawierających mniej niż x znaków i puszczenie tego w pętli, aż wszystkie linie się wyrównają, ale wolałbym takie rozwiązanie, które nie wymaga użycia pętli - żeby dało się go użyc w edytorze tekstu. Zakładamy, że na początku wszystkie linie mają <= x znaków. Pozdrowienia i z góry dzięki za pomysły. Rzepa. |
|
|
![]()
Post
#2
|
|
![]() Grupa: Przyjaciele php.pl Postów: 197 Pomógł: 0 Dołączył: 9.09.2003 Skąd: z Marsa Ostrzeżenie: (0%) ![]() ![]() |
Nie wiem jak by wyglądał ereg lub preg ale mam funkcje któa nie używa do tego pętli:
[php:1:2d67f4a452]<?php function text( $text, $length, $add = "n") { $text = trim( $text ); $strlen = strlen( $text ); if( $strlen < $length ) { $text .= str_repeat( ' ', $length - $strlen) . $add; return $text; } else { return $text."n"; } } $tekst = 'cos'; echo text($tekst, 10); ?>[/php:1:2d67f4a452] Jeśli chcesz zamienić w całym pliku wystarczy że zrobisz to w pętli bo ta funkcja przyjmuje $text jako jedną linie pliku ![]() Pozdro |
|
|
![]()
Post
#3
|
|
![]() Grupa: Przyjaciele php.pl Postów: 1 717 Pomógł: 0 Dołączył: 12.06.2002 Skąd: Wolsztyn..... Studia: Zielona Góra Ostrzeżenie: (0%) ![]() ![]() |
Po co wymyslac kolo drugi raz?
Taka funkcja juz istnieje :arrow: [manual:bbacdbf3a2]str_pad[/manual:bbacdbf3a2] -------------------- Brak czasu :/
|
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarząd Postów: 3 503 Pomógł: 28 Dołączył: 17.10.2002 Skąd: Wrocław ![]() |
RTFM: [manual:9a1a7b7462]str_pad[/manual:9a1a7b7462]
-------------------- |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 110 Pomógł: 0 Dołączył: 4.02.2003 Ostrzeżenie: (0%) ![]() ![]() |
[manual:59595ead04]str_pad[/manual:59595ead04]
Pozdrawiam evo |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 110 Pomógł: 0 Dołączył: 4.02.2003 Ostrzeżenie: (0%) ![]() ![]() |
ale sie rzucili..hehehe....stukupuku
![]() |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 25 Pomógł: 0 Dołączył: 13.01.2004 Ostrzeżenie: (0%) ![]() ![]() |
Dzieki, to na pewno zadziała, ale mi zależy właśnie na wyrażeniu regularnym.
Może spróbuję sformułować problem inaczej: Wiem, że w wyrażeniu regularnym można określić maksymalną i minimalną ilość wystąpień wzorca. Czy można zatem dowiedzieć się ile razy wzorzec faktycznie wystąpił, aby zastosować tę liczbę w wyrażeniu zastępującym? pozdr. Rzepa. |
|
|
![]()
Post
#8
|
|
![]() Grupa: Zarząd Postów: 3 503 Pomógł: 28 Dołączył: 17.10.2002 Skąd: Wrocław ![]() |
No to to juz są dwa odmiene problemy.,
Chcesz wyrównać długośc linii, czy policzyć substringi? -------------------- |
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 110 Pomógł: 0 Dołączył: 4.02.2003 Ostrzeżenie: (0%) ![]() ![]() |
Cytat Wiem, że w wyrażeniu regularnym można określić maksymalną i minimalną ilość wystąpień wzorca. Czy można zatem dowiedzieć się ile razy wzorzec faktycznie wystąpił, aby zastosować tę liczbę w wyrażeniu zastępującym?
Cytat Wiem, ze w wyrazeniu regularnym mozna okreslic maksymalna i minimalna ilosc wystapien wzorca. Czy mozna zatem dowiedziec sie ile razy wzorzec faktycznie wystapil, aby zastosowac te liczbe w wyrazeniu zastepujacym?
okreslajac minimum i maks wzorca masz maske do ktorej bedziesz dopasowywal Stringi. W wyrazeniach nie masz mozliwosci liczyc ilosci znakow! Mozesz je wyrazeniem wyciac i policzyc strlen(). maske definuiesz poprzez podanie znaku czy zbioru oraz {min,maks} Np: [php:1:cf4baf91b7]<?php $str='jakis string i znak xxxxxxxxxxx a tu dalej jakis string pixi dixi itd...'; ?>[/php:1:cf4baf91b7] i teraz chcesz sie dowiedziec ile razy wystapil x lecz nie ogolnie w stringu a kolo siebie [php:1:cf4baf91b7]<?php if(preg_match('|x{2,}|i',$str,$m))echo strlen($m[0]); ?>[/php:1:cf4baf91b7] O to ci chodzi? pozdrawiam evo |
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 25 Pomógł: 0 Dołączył: 13.01.2004 Ostrzeżenie: (0%) ![]() ![]() |
no, generalnie na to wychodzi, że tak. chciałem zastosować wyrażenie bez użycia php - w edytorze tekstowym który umożliwia stosowanie wyrażeń regularnych do wyszukiwania i zastępowania fragmentów tekstu, ale wychodzi na to, że jednak bez kodu się nie obejdzie...
![]() powinienem był to wyraźnie zaznaczyć w pierwszym poście - przepraszam, że tego nie zrobiłem. Pozdrawiam i dzięki, Rzepa. |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 12.07.2025 - 22:05 |