2010-06-14 4 views

Répondre

1

Si vous souhaitez utiliser le remplacer, vous pouvez utiliser les éléments suivants:

$str = "(ABC)some text"; 
$str = preg_replace("/^.*\(([^)]*)\).*$/", '$1', $str); 

Le motif correspondra à la chaîne entière et la remplacera par ce qu'elle aura trouvé à l'intérieur de la parenthèse

+0

cela fonctionne aussi bien. :) – apis17

2

Au lieu de preg_replace, j'utiliser preg_match:

preg_match('#\(([^)]+)\)#', $str, $m); 
echo $m[1]; 
+1

De manière réaliste, il s'agit d'un cas plus clair pour faire correspondre une chaîne plutôt que de remplacer une chaîne. – gnarf

+0

Bienvenue sur Stack Overflow! Commencez chaque ligne avec 4 espaces pour le formater en tant que code - http://stackoverflow.com/editing-help. En outre, il n'est pas nécessaire de signer votre message. – Kobi

+0

merci cela fonctionne! – apis17

0

Essayez ceci:

$str = preg_replace('/\((.*?)\).*/','\\1',$str); 
+0

merci. cela fonctionne :) – apis17

0

J'éviterais d'utiliser regex complètement ici. Au lieu de cela, vous pouvez utiliser des fonctions de chaîne normales comme ceci: $ str = str_replace (array ('(', ')'), array(), $ str);

+0

merci user366075, mais cela ne supprime pas * du texte * à la fin de la parenthèse. veut seulement la chaîne dans la parenthèse et en enlève d'autres. – apis17