Kurze Antwort: Vielleicht.
Lange Antwort: Es wird viel mehr kompliziert sein, dann wollen Sie. Nicht zu vergessen, es gibt viele verschiedene Varianten von regulären Ausdrücken und (je nachdem, wie detailliert Sie diese Ausdrücke überprüfen möchten) müssen Sie auswählen, welchen Geschmack Sie validieren möchten. Außerdem sind einige Varianten regulärer Ausdrücke nicht robust genug, um einige der schwierigeren Dinge zu erledigen, die dieser Ausdruck benötigen würde.
vorgeschlagene Antwort: Sie nicht einen regulären Ausdruck verwenden, aber ernten die innere Kraft der alles, was Programmiersprache Sie verwenden. Mit anderen Worten, versuchen Sie einfach, den Ausdruck zu verwenden und achten Sie auf eine Ausnahme (oder einen anderen Fehler).
Zum Beispiel in Javascript:
function isRegexValid(expression) {
try {
new RegExp(expression);
return true;
} catch(e) {
return false;
}
}
console.log(isRegexValid('(.*?)')); // true
console.log(isRegexValid('(.?+')); // false
Zum Beispiel in PHP:
function isRegexValid($expression) {
return preg_match($expression, '') !== false;
}
var_dump(isRegexValid('/(.*?)/')); // true
var_dump(isRegexValid('/(.?+/')); // false
ja, es ist möglich, aber nur mit regex Motoren, die über eine Funktion, um mit ausgewogener Klammer haben . –
Meinen Sie nur, wenn der Regex gültig ist? –
Theoretisch '. *' Wird alle Regexe übereinstimmen. Angesichts der Unicode-Unterstützung. Aber ich verstehe nicht, was Sie hier erreichen wollen. –