Optimering av regex-användning i PHP
Reguljära uttryck är en mycket tung och relativt långsam funktion. När det finns ett alternativt sätt, bör man använda det istället.
Låt oss titta på ett exempel. Antag att vi behöver kontrollera om en viss sträng börjar med ett utropstecken. En programmerare löste detta problem med hjälp av regex:
<?php
if (preg_match('#^!#', $str)) {
echo 'ja';
} else {
echo 'nej';
}
?>
Men detta problem har en mycket snabbare lösning:
<?php
if ($str[0] == '!') {
echo 'ja';
} else {
echo 'nej';
}
?>
Reguljära uttryck är en mycket tung och relativt långsam funktion. Alltid, när det finns ett alternativt sätt, bör man använda det istället.
I följande kod kontrollerar en programmerare
om strängen innehåller delsträngen '333'.
Optimera denna programmerares lösning.
Här är koden:
<?php
$str = '1233345';
if (preg_match('#333#', $str)) {
echo 'finns';
} else {
echo 'finns inte';
}
?>
I följande kod kontrollerar en programmerare
om strängen slutar med .html.
Optimera denna programmerares lösning.
Här är koden:
<?php
$str = 'index.html';
if (preg_match('#\.html$#', $str)) {
echo 'ja';
} else {
echo 'nej';
}
?>
Skriv kod som kontrollerar om en sträng slutar
på .png eller på .jpg.