/ / Match utf-8 Ausdruck in String mit preg_match () - php, regex, preg-match

Match utf-8 Ausdruck in String mit preg_match () - PHP, Regex, Preg-Match

Ich triyin, um eine Phrase in einer Zeichenfolge als ein Wort (stristr funktioniert nicht, da ich nicht Ergebnisse, die das Wort enthalten wollen)

Ich benutze diesen Code:

function striword($string, $word) {
return preg_match("/(?:[[:space:]]|^)" . $word . "(?:[^w]|$)/i", $string);
}

Aber wenn ich versuche, einen String wie "das ist ein String" zu finden, funktioniert es nicht wie erwartet :(

Beispiel:

//Phrase to match: "soda and beer"

striword($string, "soda and beer");

String 1: "I like soda and beer" MATCH: TRUE
String 2: "I like soda and beerbum" MATCH: FALSE
String 3: "I like soda and beer, it"s nice!" MATCH: TRUE

Antworten:

2 für die Antwort № 1

Zwei Optionen:

Verwenden Sie entweder Wortgrenzenanker (nützlich, wenn Sie mit tatsächlichen alphanumerischen Wörtern arbeiten):

preg_match("/b" . $word . "b/i", $string);

Oder verwenden Sie Leerzeichen als Trennzeichen:

preg_match("/(?:^|s)" . $word . "(?:s|$)/i", $string);

Wenn Sie Unicode-Zeichenfolgen verwenden und Unicode-Wörter zuordnen möchten, vergessen Sie nicht /u Modifikator.