Vraag & Antwoord

Programmeren

Perl: elk woord op eigen regel

5 antwoorden
  • Ik wil op Perl een woordenlijst maken. Nu kan ik het wel met shellscriptjes (tr -s ' ' '\012'), maar Perl is nieuw voor mij. Ik wil elk woord op een eigen regel zetten. Hoe doe je dat in perl?
  • @words = ($text =~ /\w+/g); print join /\n/, @words;
  • Gerben bedankt. Zou je misschien je code kunnen uitleggen? Je maakt dus gebruik van de [i:ec1e1e5730]s//[/i:ec1e1e5730] laat met de reguliere expressie [i:ec1e1e5730]\w[/i:ec1e1e5730] alle alphanumerieken vervangen door wat? Vervolgens laat je een newline joinen... Ik ben nogal een newbie wat betreft perl, ik heb meer een C achtergrond, dus de exotische eigenschappen van Perl zijn nog relatief nieuw voor mij. Ik heb een andere manier gevonden die voor mij wat begrijpelijker is: [code:1:ec1e1e5730] @words = split(/\s+/, $line); foreach $word (@words) { print("$word\n"); } [/code:1:ec1e1e5730]
  • De regel waar het om gaat is een reguliere expressie, die (een of meer) word characters (\w+) eruit pikt. Dit komt meerdere malen voor, die ondervang je met /g, en de resultaten gaan naar de array @words. Dit is dus geen substitute!
  • [quote:d8ba6c8644="gerben"]De regel waar het om gaat is een reguliere expressie, die (een of meer) word characters (\w+) eruit pikt. Dit komt meerdere malen voor, die ondervang je met /g, en de resultaten gaan naar de array @words. Dit is dus geen substitute![/quote:d8ba6c8644] Ok, je matcht dus alle alphanumerieken... Wat vind je van mijn manier trouwens?

Beantwoord deze vraag

Weet jij het antwoord op deze vraag? Registreer of meld je aan met je account

Dit is een gearchiveerde pagina. Antwoorden is niet meer mogelijk.