Daniel Thoma: Regex: ersetze ;) falls davor nicht abc|de|ghij steht

Beitrag lesen

Hallo Robert,

$text =~ s/(&(?:amp|gt|lt|quot))?;/$1 ? $1.':' : 'was anderes'/ge;

s/regex/code/ge ersetzt einfach das, was der reguläre Ausdruckt matcht durch das Ergebnis des Codes.
$1 ? $1.';' : 'was anderes' ist einfach ein inline-if. Wenn $1 definiert ist, wird einfach durch das ersetzt, was gematcht wurde. Statt $1.';' könnte man in dem Fall natürlich auch $0 nehmen, fällt mir da auf.

Grüße

Daniel