Когда я сегодня программировал модуль загрузки ZBlog, мне нужно было использовать подпрограмму для извлечения имен файлов в статье. Сначала я усложнил задачу и сопоставил все возможные имена файлов. Мало того, что я написал длинный список регулярных выражений, но и Сплит ниже. Поработав над этим в течение долгого времени, я вдруг обнаружил, что все загруженные файлы Z-Blog хранятся в загрузке, и столько сложных совпадений написано зря. . . Эй, его нельзя тратить впустую. Лучше опубликовать его на случай, если он понадобится кому-нибудь из братьев в будущем~~
Следующий подпроцесс можно рассматривать как относительно хорошее универсальное сопоставление. (PS: Я внезапно обнаружил, что CODE_LITE сбежал из моего UBB!!! Диззи, мне самому пришлось сбежать от него...)
-------------------------------------------------- ----------------------------------
Dim objRegExp, Matches, i, DC9_DOT_CN_MATCH
Тусклый aryMatch()
Redim Preserve aryMatch(0)
Установить objRegExp=Новое регулярное выражение
objRegExp.IgnoreCase = Истина
objRegExp.Global=Истина
objRegExp.Pattern="(?:[[^]]+]([^[]+)[/[^]]+])|(?:(?:href|src) =([^s|^>]+)[""|>|s'])"
Установить совпадения = objRegExp.Execute("[img]2312.jpg[/img][img]2312.jpg[/img]hh[img][/img]<a href="" src="" Dim TmpMatch
Для i=0 для Matches.Count-1
Вызов InsertDataToArray(Matches(i).SubMatches(0),aryMatch)
Вызов InsertDataToArray(Matches(i).SubMatches(1),aryMatch)
Далее
От i=0 до Ubound(aryMatch)
Если Not IsNull(aryMatch(i)) и Trim(aryMatch(i))<>"" Тогда Response.write aryMatch(i)&"<br>"
Следующая
функция InsertDataToArray(Data,ByRef aryMatch)
Если Trim(Data)<>"" Тогда
Данные=Заменить(Данные,"'","")
Данные=Заменить(Данные,"""","")
Данные=Заменить(Данные,"","/")
Data=Split(Данные,"/")(Ubound(Split(Данные,"/")))
Redim Preserve aryMatch(Ubound(aryMatch)+1)
DC9_DOT_CN_MATCH=Ложь
От j=0 до Ubound(aryMatch)
Если aryMatch(j)=Данные, то DC9_DOT_CN_MATCH=True
Следующий
Если нет DC9_DOT_CN_MATCH, то aryMatch(Ubound(aryMatch))=Data
Конец, если
Конечная функция
------------------------------------------------ --------------------------------
На самом деле, для Z-Blog он просто должен совпадать с Upload (но во избежание проблем , я , а для большей точности я просто добавил загрузку к приведенному выше совпадению, так что кажется, что следующая сложнее. На самом деле следующая по идее должна быть проще. Ведь загрузка главная. .) Просто напишите SPLit/.
-------------------------------------------------- ----------------------------------
Dim objRegExp, Matches, i, ZC_UPLOAD_MATCH
Тусклый aryMatch()
Redim Preserve aryMatch(0)
Установить objRegExp=Новое регулярное выражение
objRegExp.IgnoreCase = Истина
objRegExp.Global=Истина
objRegExp.Pattern="(?:[[^]]+][^[]*upload/([^[|^\|^/]+)[/[^ ]]+])|(?:(?:href|src)=""{0,1}[^s|^""|^>|^']*upload/([^s| ^>]+)[""|>|s'])"
Установить совпадения = objRegExp.Execute("[img]2312.jpg[/img][img]2312.jpg[/img]hh[img][/img]<a href="" src="" Data=Replace( Данные,"""","")
Redim Preserve aryMatch(Ubound(aryMatch)+1)
ZC_UPLOAD_MATCH=Ложь
От j=0 до Ubound(aryMatch)
Если aryMatch(j)=Данные, то ZC_UPLOAD_MATCH=True
Следующий
Если не ZC_UPLOAD_MATCH, то aryMatch(Ubound(aryMatch))=Данные
Конец, если
Конечная функция
Источник: http://www.dc9.cn/post/279.html.