Ci sono.
Qui sotto ho provato a fare una regex espressamente e rispettivamente delle due stringhe di apertura e di chiusura.
<?php
$string1 = "";
$regex1 = '/[\<]{1}[\!]{1}[\-]{2}[^A-Za-z0-9_]{1}([a-z]{6})[^A-Za-z0-9_]{1}[A-Z]{8}[^A-Za-z0-9_]{1}[\-]{2}[\>]{1}$/';
$string2 ="";
$regex2 = '/[\<]{1}[\!]{1}[\-]{2}[^A-Za-z0-9_]{1}([a-z]{4})[^A-Za-z0-9_]{1}[A-Z]{8}[^A-Za-z0-9_]{1}[\-]{2}[\>]{1}$/';
Function prima($regex1, $string1 ){
if (preg_match($regex1, $string1)) {
echo " is a valid string1. We can accept it.
";
return true;
} else {
echo " is an invalid string1. Please try again.
";
return false;
}
}
Function prima2($regex2, $string2 ){
if (preg_match($regex2, $string2)) {
echo " is a valid string2. We can accept it.
";
return true;
} else {
echo " is an invalid string2. Please try again.
";
return false;
}
}
prima($regex1, $string1);
prima2($regex2, $string2);
?>
Prova a vedere se funzionano come chiedevi.