2016-08-04 51 views
2
zu finden

Ich versuche eine PHP-Regex CR 3492161 oder cr 3492161 zu finden. Ich habe versucht, mit der folgenden Regex, aber es funktioniert nicht. Bitte um Hilfe. :-)PHP regex CR 3492161 oder cr 3492161

'CR\s/^\d{7}$/' 
'CR\h/^\d{7}$/' 
'CR /^\d{7}$/' 

Hinweis: CR ist kein Carriage Return, vielleicht ist es nur ein Muster CR.

Code:

<?php 
namespace Shedanigans; 
use Application\Filter\Linkify; 
class Module 
{ 
    public function onBootstrap() 
    { 
    Linkify::addCallback(
     function ($value, $escaper) { 
     if (strcasecmp($value, 'CR\s/^\d{7}$/')) { 
      // not a hit; tell caller we did not handle this one 
      return false; 
     } 
     return '<a target="_new" href="https://bugzilla.akamai.com/">' 
       . $escaper->escapeHtml($value) . "</a>"; 
     }, 
     'CR\s/^\d{7}$/', 
     strlen('CR\s/^\d{7}$/') 
    ); 
    } 
    public function getConfig() 
    { 
    return array(); 
    } 
    } 

Antwort

0

Die strcasecmp Funktion ist binary safe Groß- und Kleinschreibung String-Vergleich, keine Beziehungen zu regex. Die Funktion zum Ausführen einer Regex-Prüfung ist preg_match, PHP Docs.

sollten Sie versuchen: preg_match('/^CR\s\d{7}$/i', $value)

Diese Regex CR Zeichenfolge akzeptieren (Groß- und Kleinschreibung), einen Raum und 7 Zahlen!

0

diesen Ausdruck Versuchen

preg_match('/^[Cc][Rr]\s[0-9]{7}$/', $value); 

EDIT: nur für CR begrenzt und Cr nicht Cr und nicht cR

preg_match('/^(CR|cr)\s[0-9]{7}$/', $value); 

Sie Ihre RegExr hier testen: http://regexr.com/3dum5

+0

Dies würde bestätigen auch 'Cr 3492161' und' cR 3492161' –

+0

ja natürlich, wenn Sie Änderung^(CR | cr) begrenzen \ s [0-9 ] {7} $ –