2013-08-19 5 views
0

J'ai besoin d'aide pour créer des expressions régulières afin de sélectionner des informations dans un fichier. J'utilise php preg_match pour le faire et j'essaie d'obtenir des informations qui ressemblent à ce qui suit:Correspondance d'une expression régulière avec Date/Numéros

ex.

19-Aug-2013 //The date will always be in the format. 

et un numéro comme celui-ci

303.00 

Le fichier que je suis en train de vous fournir ces informations est le corps d'un e-mail de type MIME.

J'ai seulement besoin de ces deux types d'informations spécifiques.

+7

Tout code que vous pouvez nous montrer? Veuillez inclure les entrées d'échantillons et les sorties souhaitées. – user4035

+0

veuillez fournir un échantillon de votre fichier afin que nous sachions quel est le format. – abc123

+0

Les sorties d'échantillons sont sympas, mais l'entrée d'échantillon est également excellente. –

Répondre

1

Pour la date, vous pouvez utiliser:

[0-9]{2}-[a-z]{3}-[0-9]{4} 

Pour le numéro:

[0-9]+\.[0-9]{2} 

sans entrée spécifique est difficile de trouver un meilleur regex au moment ...

2

Essayez ceci dans son ensemble:

preg_match_all('/(\d{2}-\w{3}-\d{4}|\d+\.\d{1,2})/', $file, $matches);

\d{2}-\w{3}-\d{4}: Obtenir la date

\d+\.\d{1,2}: Obtenez le flotteur

En utilisant preg_match_all vous revenez tous les matchs trouvés dans toute la botte de foin. preg_match ne correspond qu'à la première occurrence.

Questions connexes