Lorsque je programmais le module de téléchargement ZBlog aujourd'hui, j'avais besoin d'utiliser un sous-programme pour extraire les noms de fichiers dans l'article. Au début, j'ai compliqué le problème et j'ai fait correspondre tous les noms de fichiers possibles. mais aussi Split ci-dessous. Après avoir travaillé longtemps dessus, j'ai soudainement découvert que tous les fichiers téléchargés de Z-Blog étaient stockés en téléchargement, et que tant de correspondances compliquées étaient écrites en vain. . . Hé, cela ne peut pas être gaspillé. Il est préférable de le publier au cas où un frère en aurait besoin à l'avenir ~~
Le sous-processus suivant peut fondamentalement être considéré comme une correspondance universelle relativement bonne. (PS : j'ai soudain découvert que CODE_LITE s'était échappé de mon UBB !!! Dizzy, j'ai dû m'en échapper moi-même...)
-------------------------------------------------- ----------------------------------
Dim objRegExp,Correspondances,i,DC9_DOT_CN_MATCH
Dim aryMatch()
Redim Préserver aryMatch(0)
Définir objRegExp = Nouvelle RegExp
objRegExp.IgnoreCase =True
objRegExp.Global=Vrai
objRegExp.Pattern="(?:[[^]]+]([^[]+)[/[^]]+])|(?:(?:href|src) =([^s|^>]+)[""|>|s'])"
Définir les correspondances = objRegExp.Execute("[img]2312.jpg[/img][img]2312.jpg[/img]hh[img][/img]<a href="" src="" Dim TmpMatch
Pour i=0 à Matches.Count-1
Appelez InsertDataToArray(Matches(i).SubMatches(0),aryMatch)
Appelez InsertDataToArray(Matches(i).SubMatches(1),aryMatch)
Suivant
Pour i=0 à Ubound(aryMatch)
Si ce n'est pas IsNull(aryMatch(i)) et Trim(aryMatch(i))<>"" Then Response.write aryMatch(i)&"<br>"
Fonction
suivante
InsertDataToArray(Data,ByRef aryMatch)
Si Trim(Data)<>"" Alors
Données=Remplacer(Données,"'","")
Données=Remplacer(Données,"""","")
Données=Remplacer(Données,"","/")
Données=Split(Données,"/"))(Ubound(Split(Données,"/")))
Redim Préserver aryMatch(Ubound(aryMatch)+1)
DC9_DOT_CN_MATCH=Faux
Pour j=0 à Ubound(aryMatch)
Si aryMatch(j)=Données Alors DC9_DOT_CN_MATCH=True
Suivant
Si ce n'est pas le cas DC9_DOT_CN_MATCH Alors aryMatch(Ubound(aryMatch))=Data
Fin si
Fonction de fin
------------------------------------------------ --------------------------------
En fait, pour Z-Blog, il suffit qu'il corresponde à Upload (mais pour éviter les ennuis , I , et pour être plus précis, j'ai simplement ajouté le téléchargement au match ci-dessus, il semble donc que le suivant soit plus compliqué. En fait, le suivant devrait être plus simple en théorie. Après tout, le téléchargement est en charge. .) Écrivez simplement le SPLit /.
-------------------------------------------------- ----------------------------------
Dim objRegExp,Correspondances,i,ZC_UPLOAD_MATCH
Dim aryMatch()
Redim Préserver aryMatch(0)
Définir objRegExp = Nouvelle RegExp
objRegExp.IgnoreCase =True
objRegExp.Global=Vrai
objRegExp.Pattern="(?:[[^]]+][^[]*upload/([^[|^\|^/]+)[/[^ ]]+])|(?:(?:href|src)=""{0,1}[^s|^""|^>|^']*upload/([^s| ^>]+)[""|>|s'])"
Définir les correspondances = objRegExp.Execute("[img]2312.jpg[/img][img]2312.jpg[/img]hh[img][/img]<a href="" src="" Data=Replace( Données,"""","")
Redim Préserver aryMatch(Ubound(aryMatch)+1)
ZC_UPLOAD_MATCH=Faux
Pour j=0 à Ubound(aryMatch)
Si aryMatch(j)=Données Alors ZC_UPLOAD_MATCH=True
Suivant
Si ce n'est pas le cas ZC_UPLOAD_MATCH Alors aryMatch(Ubound(aryMatch))=Data
Fin si
Fonction de fin
Source : http://www.dc9.cn/post/279.html