2010-09-04 7 views
1

Je suis nouveau à PHP et expressions généralement régulières. Je dois faire correspondre des mots qui contiennent des chaînes comme word[0-9]* = any string here. Comment puis-je écrire une regex pour cela. Jusqu'ici je suis venu avec ceci mais il ne semble pas trouver les ficelles correctement.Chaîne PHP Regex correspondant

$regexp = "word[0-9]* = [A-Z](.*)[a-z]"; 

Comment est-ce que je corrigerais l'expression ci-dessus?

Merci à l'avance

+0

Êtes-vous sûr que vous voulez dire 'mot [0-9] *' et non par exemple 'mot [0 -9] + '? Pourriez-vous décrire ce que vous? Actuellement, vous ne faites que décrire votre solution (incorrecte). Vous ne nous avez pas dit ce que vous voulez. –

Répondre

2
word[\d]* = (.*) 

Ce?

preg_match('/word[\d]* = (.*)/', $string, $matches); 

Cela suppose que vous voulez capturer la chaîne après le '='.

2

Je ne comprends pas votre façon de faire correspondre "n'importe quelle chaîne ici". vous pourriez plutôt essayer:

^word[0-9]+ = .*$ 

En PHP, vous devez également ajouter délimiteurs:

"/^word[0-9]+ = .*$/" 
+0

Salut Merci. J'ai juste dû échapper à la négation et cela fonctionne parfaitement .. Merci beaucoup! –

+0

Vous êtes les bienvenus. –

+0

En fait, je reçois un tableau qui est rempli avec toutes ces correspondances, suivi par le reste du contenu de la page (j'essaye d'analyser une page html). Est-il possible que je ne peux obtenir que le tableau des mots? –