Kapitel 2. Erweiterte einführende Beispiele

Sie erinnern sich an das Problem der verdoppelten Wörter aus Kapitel 1? Ich hatte gesagt, dass in einer Sprache wie Perl eine komplette Lösung in einigen wenigen Zeilen realisierbar wäre. Eine solche Lösung kann etwa so aussehen:

$/ = ".\n";
while (<>) {
  next if !s/\b([a-z]+)((?:\s|<[^>]+>)+)(\1\b)/\e[7m$1\e[m$2\e[7m$3\e[m/ig;
  s/^(?:[^\e]*\n)+//mg;  # Nicht markierte Zeilen löschen.
  s/^/$ARGV: /mg;  # Dateinamen voranstellen.
  print;
}

Jawohl, das ist das ganze Programm.

Auch wenn Sie Perl kennen, nehme ich nicht an, dass Sie das sofort verstehen (noch nicht!). Ich wollte nur ein Beispiel zeigen, das über die Möglichkeiten von egrep hinausgeht, und Ihren Appetit auf ernsthafte Applikationen von regulären Ausdrücken ...

Get Reguläre Ausdrücke, 3rd Edition now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.