Je ne me souviens pas quoi utiliser pour ne renvoyer qu'une partie spécifique d'une chaîne. J'ai une chaîne comme celle-ci: -

$str = "return(me or not?)";

Je veux obtenir le mot qui se trouve après (. Dans cet exemple, me sera mon résultat. Comment puis-je faire cela?

Je ne pense pas que substr soit ce que je recherche. as substr renvoie une valeur basée sur l'index que vous avez fourni. qui dans ce cas je ne connais pas l'indice, il peut varier. Tout ce que je sais, c'est que je veux retourner ce qui est après "(" et avant l'espace "". Les positions d'index seront toujours différentes là-bas car je ne peux pas utiliser substr (..).

php
-2
LukeDS 20 nov. 2018 à 12:55

3 réponses

Meilleure réponse

Cette expression régulière devrait faire l'affaire. Comme vous n'avez pas fourni de règles générales, mais seulement un exemple, des modifications supplémentaires pourraient être nécessaires.

preg_match('/\((\S+)/', $input, $matches);

$matches[1] contient alors "moi".

1
Tobias Xy 20 nov. 2018 à 10:02

Le résultat du groupe de capture sera votre résultat en utilisant ce regex et preg_match ().

$regex = '/\((\w+)/';

Vérifiez preg_match () pour la référence de travail.

0
Deepak Dixit 20 nov. 2018 à 10:16
<?php

// Your input string
$string = "return(me or not?)";

// Pattern explanation:
// \( -- Match opening parentheses
// ([^\s]+) -- Capture at least one character that is not whitespace.
if (preg_match('/\(([^\s]+)/', $string, $matches) === 1)
    // preg_match() returns 1 on success.
    echo "Substring: {$matches[1]}";
else
    // No match found, or bad regular expression.
    echo 'No match found';
0
Ro Achterberg 20 nov. 2018 à 10:04