I PHP Code benötigen zu erkennen, ob eine Zeichenfolge enthält 4 oder mehr aufeinanderfolgende geschrieben Ziffern (0 bis 9), wie:regulärer Ausdruck Nummern zu erfassen, wie Worte geschrieben
oder
"zero eight nine nine seven three six six"
I PHP Code benötigen zu erkennen, ob eine Zeichenfolge enthält 4 oder mehr aufeinanderfolgende geschrieben Ziffern (0 bis 9), wie:regulärer Ausdruck Nummern zu erfassen, wie Worte geschrieben
oder
"zero eight nine nine seven three six six"
/(?:(?:^|\s)(?:one|two|three|four|five|six|seven|eight|nine|ten)(?=\s|$)){4,}/
PHP-Code:
if (preg_match(...put regex here..., $stringToTestAgainst)) {
// ...
}
Hinweis: Mehr wor ds (z.B. 'Zwölf') kann leicht zum Regex hinzugefügt werden.
Sie können es wie folgt tun:
\b(?:(?:zero|one|two|three|four|five|six|seven|eight|nine)(?: +|$)){4}
if (preg_match("/(?:\b(?:(one)|(two)|(three)|(four)|(five)|(six)|(seven)|(eight)|(nine))\b\s*?){4,}/", $variable_to_test_against, $matches)) {
echo "Match was found <br />";
echo $matches[0];
}
EDIT:
Added Raum (s) im regulären Ausdruck - dank Kobi.
Fehlt Ihnen nicht Leerzeichen zwischen den Wörtern? – Kobi
Eine weitere Option ist:
\b(?:(?:one|two|three|four|five|six|seven|eight|nine|zero)\b\s*?){4}
Das ist so ziemlich das gleiche wie der Rest. Das einzige interessante Bit ist der \s*?
Teil - das wird die Abstände zwischen den Wörtern faul stimmen, so dass Sie nicht mit zusätzlichen Leerzeichen nach die Folge von 4 Worten enden. Die \b
vor es stellt sicher, es gibt mindestens ein einzelnes Leerzeichen (oder ein anderes Trennzeichen nach dem letzten Wort, so !a b c d!
wird übereinstimmen)
+1 Ich mag diesen Ansatz sehr. Hier ist ein Rubular-Link dafür: http://rubular.com/r/Fm4dGwkNGg ... Du hast aber null vergessen. –
@Mark - Danke. Ich habe es auch dort getestet, habe den Link einfach vergessen. Ich habe Null, aber es ist nicht sortiert ':)' – Kobi
Oh ja, es ist in der Reihenfolge der Tastatur sortiert. Ich hätte bemerken sollen, dass Null eines der Beispiele in der Rubulinkette ist. Es tut uns leid. :) –
Können die Zahlen beliebig groß sein? – phimuemue
Ist "einhundertvierundvierzig" eine Zahl? Zwei Zahlen? Drei? Vier? –
nur einzelne Zahlen null bis neun –