Ich habe in einige Probleme im Zusammenhang mit regulären Ausdruck und Muster geraten. meine Eingabe muss mehrmals im Format von A oder B oder Kombination von A und B sein.Regex in PHP, um ein Muster zu validieren
es zu illustrieren
Ein Muster ist x (y)
B Muster x (y, z)
A, B bedeutet, x (y), x (y, z)
Kombinationen können, wie, aber nicht beschränkt auf
A, A
A, A, A
A, B, A
B, B
B, B, B
usw. ohne spezifische Zahlen pro Kombination. gibt es eine verfügbare Methode, um zu überprüfen, ob A und B in der Kombination das richtige Format haben.
, was ich denke, ich tun sollte, ist die Kombination in einem Begrenzer zu spalten und dann jedes Array-Element durch eine Funktion übergeben, die meine A und B bestätigt
$rule=$_POST['rule']; //e,g aaa(bbb,ccc) OR aaa(bbb)
$patternR1='/^\w+[\(]\w+[\)]$/';
$patternR2='/^\w+[\(]\w+[\,]\w+[\)]$/';
if (preg_match($patternR1, $rule))
{
echo "Your entered rule is ".$rule." satisfying the correct format: x(y)";
}
else if(preg_match($patternR2, $rule))
{
echo "Your entered rule is ".$rule." satisfying the correct format: x(y,z)";
}
else
{
echo "Syntax error in the rule body ". $rule." has to be either in x(y) or x(y,z) format";
$ef=0;
}
Bitte beachten Sie auch, dass ein Komma gibt es die trennt A und B und es gibt Komma innerhalb des Musters B, die im Kontext unterschiedliche Bedeutung haben.