2012-07-02 2 views
0

J'ai un fichier HTML contenant ces lignes -Quel pourrait être le Regex pour rechercher des chaînes à partir d'un fichier?

<script>PrintFileURL("13572_BranchInformationReport_2012-06-29.xml","13572_BranchInformationReport_2012-06-29.zip",0,"184277","Jun 29 1:30","/icons/default.gif")</script> 
<script>PrintFileURL("13572_BranchInformationReport_2012-07-02.zip","13572_BranchInformationReport_2012-07-02.zip",0,"184302","Jul 2 1:30","/icons/default.gif")</script> 
<script>PrintFileURL("13572_IndividualInformationReportDelta_2012-06-29_033352.zip","13572_IndividualInformationReportDelta_2012-06-29_033352.zip",0,"53147","Jun 29 3:33","/icons/default.gif")</script> 
<script>PrintFileURL("13572_IndividualInformationReportDelta_2012-07-02_033458.zip","13572_IndividualInformationReportDelta_2012-07-02_033458.zip",0,"62719","Jul 2 3:35","/icons/default.gif")</script> 
<script>PrintFileURL("13572_IndividualInformationReport_2012-07-01.acc","13572_IndividualInformationReport_2012-07-01.zip",0,"4033364","Jul 1 12:50","/icons/default.gif")</script> 

j'ai besoin d'extraire les noms de fichiers de cette chaîne -

13572_IndividualInformationReportDelta_2012-06-29_033352.zip

13572_IndividualInformationReportDelta_2012-07- 02_033458.zip

13572_BranchInformationReport_2012-07-02.zip

13572_BranchInformationReport_2012-07-02.xml

13572_IndividualInformationReport_2012-07-01.acc

En ce moment je suis en utilisant le code suivant Regex -

var fileNames = from Match m in Regex.Matches(pageSource, @"[0-9]+_+[A-Za-z]+_+[0-9]+-+[0-9]+-+[0-9]+\.+(acc|zip|app|xml|def|enr|exm|fpr|pnd|trm)") 
         select m.Value; 

Il me donne la dernière 3 fichiers mais pas les 2 premiers fichiers.

Quelqu'un peut-il me fournir un seul Regex pour extraire tous ces fichiers?

Merci à l'avance :)

Répondre

1

Ajouter (_+[0-9]+)? à elle:

var fileNames = from Match m in Regex.Matches(pageSource, @"[0-9]+_+[A-Za-z]+_+[0-9]+-+[0-9]+-+[0-9]+(_+[0-9]+)?\.+(acc|zip|app|xml|def|enr|exm|fpr|pnd|trm)") 

Cela signifie qu'il devrait également correspondre à des lignes avec l'option _+[0-9]+ postfix dans le nom de fichier.

+0

Wow merci beaucoup ..... Il a travaillé :) – akhil

0

\d+_\w+_\d+-\d+-\d+(_\d+)?\.+(acc|zip|app|xml|def|enr|exm|fpr|pnd|trm)

0

Essayez le regex ci-dessous

@"^[^\(]*\(\""([^""]+)\""" 

et utilisation:

match.Groups[1]; 
Questions connexes