PHP preg_match entre chaîne
Je vais essayer d'obtenir la chaîne hello world
.
C'est ce que j'ai obtenu jusqu'à présent:
$file = "1232#hello world#";
preg_match("#1232\#(.*)\##", $file, $match)
source d'informationauteur Kevin King | 2012-11-26
Vous devez vous connecter pour publier un commentaire.
Il est recommandé d'utiliser un séparateur d'autres que
#
depuis votre chaîne contient#
et un non-greedy(.*?)
pour capturer les caractères avant de#
. D'ailleurs,#
n'a pas besoin d'être échappé dans l'expression si elle n'est pas le délimiteur.Encore mieux, c'est d'utiliser
[^#]+
(ou*
au lieu de+
si les caractères ne peuvent pas être présents) pour correspondre à tous les caractères jusqu'à la prochaine#
.Utilisation lookarounds:
Démo:
De sortie:
Tester ici.
Il me semble que vous avez juste à obtenir
$match[1]
:Êtes-vous d'obtenir des résultats différents?
Que si vous voulez que le délimiteur également être inclus dans le tableau, ce serait plus utile pour preg_split où vous ne pourriez pas vouloir chaque élément du tableau de début et de fin avec les délimiteurs, l'exemple im sur le point de montrer allait inclure les délimiteurs de l'intérieur de la gamme de valeurs. ce serait ce que vous auriez besoin
preg_match('/\#(.*?)#/', $file, $match); print_r($match);
ce serait sortie dearray(
[0]=> #hello world#
)