Thread View: pl.comp.lang.perl
3 messages
3 total messages
Started by Sebastian Lukasiewicz
Thu, 15 Jan 1998 17:09
Wyrazenia regularne, split
Author: Sebastian Lukasiewicz
Date: Thu, 15 Jan 1998 17:09
Date: Thu, 15 Jan 1998 17:09
29 lines
1451 bytes
1451 bytes
Czesc
Mam kilka pytanek zwiazanyk z wyrazeniami regularnymi oraz funkcja split
1. Mam ciag : "aaa bbb ccc ddd eee"
a) jak przypisac na 1 zmienna slowo "aaa" a reszte ciagu na 2 zmienna,
za pomoca funkcji split
b) jak przypisac na 1 zmienna slowa "aaa" i "bbb" a na druga zmienna
slowo "eee", za pomoca funkcji split
c) jak "wyciagnac" ze stringa i przypisac na jakas zmienna 2 lub 3
wyraz za pomoca wyrazenia regularnego. Chodzi mi tu oto aby uzy-
skac efekt uzycia funkcji zawracajacej n'ty wyraz z ciagu. Np.
w jezyku REXX jest funkcja word "word(string, n)".
2. Mam ciag "Ala ma kota. Tata\n ma gazete"
Jak za pomoca wyrazenia reguralnego lub funkcji split otrzymac
string w ktorym bedzie wszystko od slowa "ma" do znaku konca linii
("\n").
Z gory dziekuje za jakakolwiek pomoc.
Pozdrawiam
D-Roc
---
e-mail : d0roc@is.com.pl
Re: Wyrazenia regularne, split
Author: Robert Richard George 'reptile' ...
Date: Thu, 15 Jan 1998 16:33
Date: Thu, 15 Jan 1998 16:33
57 lines
3387 bytes
3387 bytes
On 98.01.15 Sebastian Lukasiewicz pressed the following keys:
> Czesc
>
> Mam kilka pytanek zwiazanyk z wyrazeniami regularnymi oraz funkcja split
>
> 1. Mam ciag : "aaa bbb ccc ddd eee"
>
> a) jak przypisac na 1 zmienna slowo "aaa" a reszte ciagu na 2 zmienna,
> za pomoca funkcji split
splitem nie umiem, ale za to mozna tak:
$zmienna =~ /^(\S+)\s+(.*)$/; # caly lancuch w $zmienna
$poczatek = $1; # pierwsze slowo
$koniec = $2; # reszta lancucha
> b) jak przypisac na 1 zmienna slowa "aaa" i "bbb" a na druga zmienna
> slowo "eee", za pomoca funkcji split
$zmienna = /^(\S+\s+\S+).*?(\S+)$/ # caly lancuch w $zmienna
$poczatek = $1; # pierwsze dwa slowa
$koniec = $2; # ostatnie slowo
> c) jak "wyciagnac" ze stringa i przypisac na jakas zmienna 2 lub 3
> wyraz za pomoca wyrazenia regularnego. Chodzi mi tu oto aby uzy-
> skac efekt uzycia funkcji zawracajacej n'ty wyraz z ciagu. Np.
> w jezyku REXX jest funkcja word "word(string, n)".
@tablica = split(/\s+/,"aaa bbb ccc ddd eee"); # podziel w miejscach, gdzie
# sa ,,biale znaki''
print "$tablica[3]\n"; # masz tablice, ktora mozesz
# sobie indeksowac do bolu.
> 2. Mam ciag "Ala ma kota. Tata\n ma gazete"
>
> Jak za pomoca wyrazenia reguralnego lub funkcji split otrzymac
> string w ktorym bedzie wszystko od slowa "ma" do znaku konca linii
> ("\n").
"Ala ma kota. Tata\n ma gazete" =~ /(ma .*?\n)/;
print "$1\n";
Po znaczenia poszczegolnych znaczkow specjalnych w perlu odsylam do
_man perlre_
> Z gory dziekuje za jakakolwiek pomoc.
Nie ma za co, mam nadzieje, ze to cos wyjasni :)
Gad
--
mailto:reptile@pdi.net :)
Women are more complicated than PC... :(
Look into my headers and you'll see who I am. :)
Re: Wyrazenia regularne, split
Author: Michal Pawel Mroczek
Date: Fri, 16 Jan 1998 07:54
Date: Fri, 16 Jan 1998 07:54
31 lines
1536 bytes
1536 bytes
Robert Richard George 'reptile' Wal wrote:
>
> On 98.01.15 Sebastian Lukasiewicz pressed the following keys:
>
> > Czesc
> >
> > Mam kilka pytanek zwiazanyk z wyrazeniami regularnymi oraz funkcja split
> >
> > 1. Mam ciag : "aaa bbb ccc ddd eee"
> >
> > a) jak przypisac na 1 zmienna slowo "aaa" a reszte ciagu na 2 zmienna,
> > za pomoca funkcji split
>
> splitem nie umiem, ale za to mozna tak:
>
> $zmienna =~ /^(\S+)\s+(.*)$/; # caly lancuch w $zmienna
> $poczatek = $1; # pierwsze slowo
> $koniec = $2; # reszta lancucha
>
splitem mozna tak:
($a,$b)=split(/\s+/,"aaa bbb ccc ddd eee",2); #dwojka na koncu oznacza
# na ile czesci (maksymalnie) ma podzielic lancuch
Pozdrawiam,
Pawel
--
------------------------
- Michal Pawel Mroczek -
- arnie@nask.pl -
------------------------
Thread Navigation
This is a paginated view of messages in the thread with full content displayed inline.
Messages are displayed in chronological order, with the original post highlighted in green.
Use pagination controls to navigate through all messages in large threads.
Back to All Threads