Als ich heute das ZBlog-Upload-Modul programmierte, musste ich eine Unterroutine verwenden, um die Dateinamen im Artikel zu extrahieren. Zuerst habe ich das Problem verkompliziert und alle möglichen Dateinamen abgeglichen. aber auch Split unten Nachdem ich lange daran gearbeitet hatte, stellte ich plötzlich fest, dass alle hochgeladenen Dateien von Z-Blog im Upload gespeichert waren und so viele komplizierte Übereinstimmungen umsonst geschrieben wurden. . . Hey, es darf nicht verschwendet werden, es ist besser, es zu posten, falls irgendein Bruder es in Zukunft braucht ~~
Der folgende Unterprozess kann grundsätzlich als relativ gutes universelles Matching angesehen werden. (PS: Ich habe plötzlich entdeckt, dass CODE_LITE meinem UBB entkommen war!!! Schwindelerregend, ich musste es selbst entkommen ...)
-------------------------------------------------- ----------------------------------
Dim objRegExp,Matches,i,DC9_DOT_CN_MATCH
DimmaryMatch()
Redim Preserve aryMatch(0)
Setze objRegExp=Neuer RegExp
objRegExp.IgnoreCase =True
objRegExp.Global=True
objRegExp.Pattern="(?:[[^]]+]([^[]+)[/[^]]+])|(?:(?:href|src) =([^s|^>]+)[""|>|s'])"
Set Matches = objRegExp.Execute("[img]2312.jpg[/img][img]2312.jpg[/img]hh[img][/img]<a href="" src="" Dim TmpMatch
Für i=0 bis Matches.Count-1
Rufen Sie InsertDataToArray(Matches(i).SubMatches(0),aryMatch) auf.
Rufen Sie InsertDataToArray(Matches(i).SubMatches(1),aryMatch) auf.
Weiter
Für i=0 bis Ubound(aryMatch)
Wenn nicht IsNull(aryMatch(i)) And Trim(aryMatch(i))<>"" Then Response.write aryMatch(i)&"<br>"
Nächste
Funktion InsertDataToArray(Data,ByRef aryMatch)
Wenn Trim(Daten)<>"" Dann
Daten=Ersetzen(Daten,"'","")
Daten=Ersetzen(Daten,'''''''')
Daten=Ersetzen(Daten,"","/")
Data=Split(Data,"/")(Ubound(Split(Data,"/")))
Redim Preserve aryMatch(Ubound(aryMatch)+1)
DC9_DOT_CN_MATCH=Falsch
Für j=0 bis Ubound(aryMatch)
Wenn aryMatch(j)=Data, dann DC9_DOT_CN_MATCH=True
Nächste
Wenn nicht DC9_DOT_CN_MATCH, dann aryMatch(Ubound(aryMatch))=Data
Ende wenn
Funktion beenden
------------------------------------------------ --------------------------------
Eigentlich muss es für Z-Blog nur mit Upload übereinstimmen (aber um Ärger zu vermeiden). , Ich, und um genauer zu sein, habe ich einfach Upload zum obigen Spiel hinzugefügt, daher scheint das Folgende komplizierter zu sein. Theoretisch sollte das Folgende schließlich einfacher sein .) Schreiben Sie das SPLit / einfach so:
-------------------------------------------------- ----------------------------------
Dimmen Sie objRegExp,Matches,i,ZC_UPLOAD_MATCH
DimmaryMatch()
Redim Preserve aryMatch(0)
Setze objRegExp=Neuer RegExp
objRegExp.IgnoreCase =True
objRegExp.Global=True
objRegExp.Pattern="(?:[[^]]+][^[]*upload/([^[|^|^/]+)[/[^ ]]+])|(?:(?:href|src)=""{0,1}[^s|^""|^>|^']*upload/([^s| ^>]+)[""|>|s'])"
Set Matches = objRegExp.Execute("[img]2312.jpg[/img][img]2312.jpg[/img]hh[img][/img]<a href="" src="" Data=Replace( Daten,"""","")
Redim Preserve aryMatch(Ubound(aryMatch)+1)
ZC_UPLOAD_MATCH=Falsch
Für j=0 bis Ubound(aryMatch)
Wenn aryMatch(j)=Data, dann ZC_UPLOAD_MATCH=True
Nächste
Wenn nicht ZC_UPLOAD_MATCH, dann aryMatch(Ubound(aryMatch))=Data
Ende wenn
Funktion beenden
Quelle: http://www.dc9.cn/post/279.html