2009-07-23 6 views
1

Je dois obtenir le nom de l'entreprise et son symbole ticker dans différents tableaux. Voici mes données qui sont stockées dans un fichier txt:php split chaîne utilisant regex

3M Company  MMM 
99 Cents Only Stores NDN 
AO Smith Corporation AOS 
Aaron's, Inc. AAN 

et ainsi de suite

Comment puis-je faire cela en utilisant regex ou d'autres techniques? Merci

Répondre

1

itérer sur chaque ligne, et de recueillir les données avec une expression régulière:

^(.+?)\s+([A-Z]+)$ 

Le backreference $1 contiendra le nom de l'entreprise, $2 contiendra le symbole.

Vous pouvez également diviser la chaîne en deux avec un délimiteur à deux ou trois espaces et rogner les deux chaînes résultantes. Cela ne fonctionne que si vous êtes sûr que le nom de la société et le symbole de l'émetteur sont toujours séparés par un espace suffisant, et que le nom de l'entreprise ne contient pas ce nombre d'espaces.

0

Essayez cette expression régulière:

(.+)\s*([A-Z]{3})$ 

Peut-être quelqu'un avec plus d'expérience PHP pourrait étoffer un exemple de code utilisant preg_split ou quelque chose de similaire.

1

Le format du fichier texte vous est-il imposé? Si vous avez le choix, je vous suggère de ne pas utiliser d'espaces pour séparer les champs du fichier texte. Au lieu de cela, utilisez | ou $$ ou quelque chose que vous pouvez être assuré n'apparaîtra pas dans le contenu, alors juste le diviser en un tableau.