🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Thread View: pl.comp.lang.perl
3 messages
3 total messages Started by Sebastian Lukasiewicz Thu, 15 Jan 1998 17:09
Wyrazenia regularne, split
#885
Author: Sebastian Lukasiewicz
Date: Thu, 15 Jan 1998 17:09
29 lines
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
#886
Author: Robert Richard George 'reptile' ...
Date: Thu, 15 Jan 1998 16:33
57 lines
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
#887
Author: Michal Pawel Mroczek
Date: Fri, 16 Jan 1998 07:54
31 lines
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