2010-11-18 9 views
0

Ich habe eine Zeichenfolge, bei der ich erkennen möchte, ob sie mindestens ein Fragezeichen enthält. wenn es falsch zurückgibt. Ich habe versucht, danach zu suchen, aber questiomark scheint ein besonderer Charakter zu sein. Wie würdest du das machen?regex return false, wenn die Zeichenfolge mindestens ein Fragezeichen enthält

danke.

+0

Sie möchten speziell eine Regex, oder würde irgendeine andere Logik mit Ihnen zusammenarbeiten? – BeemerGuy

+0

muss es regex sein. Es ist Teil der benutzerdefinierten Validierung in CakePHP. theoretisch könnte es mit strpos gemacht werden, aber dafür müsste ich eine extra Funktion implementieren. – ondrobaco

Antwort

3

Keine Notwendigkeit für Regex.

if (strpos($str, '?') !== false) { 
    return false; 
} 

// Shorter but always executes due to lack of a conditional structure 
// May not be what you need if you're doing various other checks 
return strpos($str, '?') === false; 

Aber du hast recht, ist ? ein Sonderzeichen in regulären Ausdruck. Es sagt der Regex-Engine, ob sie nach einem oder keinem Vorkommen von etwas suchen soll.

Wenn Sie in einem komplizierteren Regex nach einem Fragezeichen suchen, können Sie es als Paul Kehrer says einfach mit einem umgekehrten Schrägstrich umgehen.

+0

+1 für einen strikten Vergleich und eine Nicht-Regex-Lösung! – jwueller

5

Sie müssen nur die? in deiner Regex. preg_match('/\?/','A string?',$matches) wird eine Übereinstimmung für zurückgegeben? wenn einer existiert.

Das heißt, man muss nur strpos() dafür nutzen könnten. Es wäre schneller, da Sie nicht wirklich eine Regex-Engine finden müssen?

+0

+1 für die Bereitstellung von Regex-Lösung sowieso, nur für den Fall. – BoltClock

+0

eigentlich muss ich es anders herum haben .. true zurück, wenn es kein Fragezeichen gibt. Gibt false zurück, wenn mindestens ein Fragezeichen vorhanden ist – ondrobaco

+0

preg_match gibt ein int zurück, das den gefundenen Übereinstimmungen entspricht. Sie können also einfach hinzufügen! zu dem, wenn Sie dies verwenden und Sie werden festgelegt. –

Verwandte Themen