Bonjour,

J'ai une liste de mots et je veux tout simplement vérifier s'il commence ou non par "-".

J'y arrive avec substr, mais pas avec une regex (c'est vraiment pas mon truc)

Voici le code:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
 
$texte='-chat, chien, cheval, -poule, coq';
 
$tableau = explode(",", $texte);
 
// Avec substr ça marche	
foreach($tableau as $element)
{
	$rest = substr(trim($element), 0,1);
 
	if ($rest=='-')
	{
		echo $rest . '<br />';
		echo $element . ' negatif.<br />';
	}
	else
	{
		echo $rest . '<br />';
		echo $element . ' positif.<br />';
	}
}
 
// Avec preg_match ça marche pas.
foreach($tableau as $element)
{
	if (preg_match ("^\-", $element))
	{
		echo $element . ' negatif.<br />';
	}
	else
	{
		echo $element . ' positif.<br />';
	}
}
Warning: preg_match() [function.preg-match]: No ending delimiter '^' found in....
Pouvez-vous me dire ce qui ne va pas ? Je pense que c'est du au fait que "-" à une signification particulières dans les regexs.

Laquelle des deux solutions serait la moins gourmande à utiliser ?

Merci