Quando eu estava programando o módulo de upload do ZBlog hoje, precisei usar uma sub-rotina para extrair os nomes dos arquivos do artigo. No início, compliquei o problema e combinei todos os nomes de arquivos possíveis. mas também Dividir abaixo. Depois de trabalhar nisso por um longo tempo, de repente descobri que todos os arquivos carregados do Z-Blog foram armazenados no upload e muitas correspondências complicadas foram escritas em vão. . . Ei, não pode ser desperdiçado. É melhor postá-lo caso algum irmão precise dele no futuro ~~
O subprocesso a seguir pode basicamente ser considerado uma correspondência universal relativamente boa. (PS: De repente descobri que CODE_LITE havia escapado do meu UBB!!! Tonto, eu mesmo tive que escapar...)
-------------------------------------------------- ----------------------------------
Dim objRegExp,Correspondências,i,DC9_DOT_CN_MATCH
DimaryMatch()
Redim Preservar aryMatch(0)
Definir objRegExp=Novo RegExp
objRegExp.IgnoreCase = Verdadeiro
objRegExp.Global = Verdadeiro
objRegExp.Pattern="(?:[[^]]+]([^[]+)[/[^]]+])|(?:(?:href|src) =([^s|^>]+)[""|>|s'])"
Definir correspondências = objRegExp.Execute("[img]2312.jpg[/img][img]2312.jpg[/img]hh[img][/img]<a href="" src="" Dim TmpMatch
Para i=0 para Matches.Count-1
Chame InsertDataToArray(Matches(i).SubMatches(0),aryMatch)
Chame InsertDataToArray(Matches(i).SubMatches(1),aryMatch)
Próximo
Para i=0 para Ubound(aryMatch)
Se não for IsNull(aryMatch(i)) e Trim(aryMatch(i))<>"" Então Response.write aryMatch(i)&"<br>"
Próxima
Função InsertDataToArray(Data,ByRef aryMatch)
Se Trim(Dados)<>"" Então
Dados=Substituir(Dados,"'","")
Dados=Substituir(Dados,"""","")
Dados=Substituir(Dados,"","/")
Dados=Dividir(Dados,"/")(Ubound(Dividir(Dados,"/")))
Redim Preservar aryMatch(Ubound(aryMatch)+1)
DC9_DOT_CN_MATCH=Falso
Para j=0 para Ubound(aryMatch)
Se aryMatch(j)=Dados Então DC9_DOT_CN_MATCH=True
Próximo
Se não for DC9_DOT_CN_MATCH Então aryMatch(Ubound(aryMatch))=Dados
Terminar se
Função final
------------------------------------------------ --------------------------------
Na verdade, para o Z-Blog, ele só precisa corresponder ao Upload (mas para evitar problemas , eu, e para ser mais preciso, simplesmente adicionei upload à correspondência acima, então parece que o seguinte é mais complicado. Na verdade, o seguinte deveria ser mais simples em teoria. .) Basta escrever o SPLit /.
-------------------------------------------------- ----------------------------------
Dim objRegExp,Correspondências,i,ZC_UPLOAD_MATCH
DimaryMatch()
Redim Preservar aryMatch(0)
Definir objRegExp=Novo RegExp
objRegExp.IgnoreCase = Verdadeiro
objRegExp.Global = Verdadeiro
objRegExp.Pattern="(?:[[^]]+][^[]*upload/([^[|^\|^/]+)[/[^ ]]+])|(?:(?:href|src)=""{0,1}[^s|^""|^>|^']*upload/([^s| ^>]+)[""|>|s'])"
Definir correspondências = objRegExp.Execute("[img]2312.jpg[/img][img]2312.jpg[/img]hh[img][/img]<a href="" src="" Data=Replace( Dados,"""","")
Redim Preservar aryMatch(Ubound(aryMatch)+1)
ZC_UPLOAD_MATCH=Falso
Para j=0 para Ubound(aryMatch)
Se aryMatch(j)=Dados Então ZC_UPLOAD_MATCH=True
Próximo
Se não for ZC_UPLOAD_MATCH Então aryMatch(Ubound(aryMatch))=Dados
Terminar se
Função final
Fonte: http://www.dc9.cn/post/279.html