2010-07-22 5 views
2

im nouveau aux expressions régulières et voudrait déchiffrer ceci.pouvez-vous me dire ce que cette expression régulière signifie?

return preg_replace("/[<>]/", '_', $string); 

merci !!

+5

Cela signifie, remplacer «le robot triste agitant avec ses bras» avec «un visage indifférent» - c'est ce que cela signifie – Gordon

+0

Robot triste? Il ressemble à deux moineaux français-embrasser – hollsk

+0

@hollsk nope, c'est juste ton sale fantasme en train de jouer des tours sur toi;) – Gordon

Répondre

9

Cela signifie "remplacer chaque < ou > à l'intérieur de la chaîne $string avec un trait de soulignement, puis renvoyer le résultat".

Les barres obliques (/) délimitent l'expression régulière. Vous pouvez utiliser d'autres caractères à la place (preg_replace("#[<>]#", '_', $string); fonctionnerait aussi bien et prend tout son sens si votre regex contient une barre oblique). Parenthèses indiquent une classe de caractères. Ils signifient essentiellement "un caractère de ceux contenus dans la classe", donc [<>] signifie "soit un < ou un >".

Vous pouvez également annuler une classe de caractères en commençant par un ^. [^<>] signifie « tout caractère sauf < ou >

+0

Battez-moi de 30 secondes. Je suis content que ma réponse soit correcte. : P – spinon

+0

merci c'est très utile, la seule chose que je ne comprends pas est quel est le point d'utiliser le/au début et fin de l'argument, (ou # comme vous le montrez dans l'exemple), la fonction ne fonctionne pas en utilisant simplement "[<>]" merci! – chicane777

+0

Cela ne fonctionnerait pas car PHP nécessite l'utilisation de délimiteurs regex. Je ne peux pas vous dire pourquoi - d'autres langages ont implémenté cela différemment. Python ou .NET utilisent des chaînes (sans délimiteurs supplémentaires), Ruby a des expressions rationnelles en tant qu'objets de première classe, ils ont donc besoin de leur propre délimiteur ('/'). En JavaScript, vous pouvez choisir de construire une regex en utilisant une chaîne ('" ... "' ') ou un objet regex (' /.../ '). Pourquoi vous avez besoin des deux en PHP - aucune idée. –

0

On dirait qu'il remplace soit le supérieur ou le signe inférieur avec un trait de soulignement Mais je suis un peu rouillé dans regex

Questions connexes