Coldfuson или Regular Expression находят все URL в строке, заканчивающейся на страницу .doc, .txt, .pdf - PullRequest
0 голосов
/ 10 октября 2011

У меня есть веб-страница Coldfusion, и мне нужен код либо Coldfusion, либо Regular Expression, чтобы вырезать URL-адреса (несколько) в строке.Они запускаются вместе без разрывов строки или запятых, разделяющих их.Обратите внимание, что все URL-адреса являются «полными», то есть они заканчиваются типом файла страницы или документа, оканчивающимся на «.doc» или «.txt» или «.pdf».

пример строка = "http://xxxx.xxxx.com/apps/libs/hdldocs/pwr_voltage/lmz14202/docs/lmz14202_to-pmod7-ep.pdfhttp://xxxx.xxxx.com/ap

ps / libs / hdldocs / pwr_voltage / lmz14202 / документы / lmz14202_to-pmod7-ep.pdf http://xxxx.xxxx.com/apps/libs/hdldocs/pwr_voltage

/ lmz14202 / документы / lmz14202h-data.pdf http://xxxx.xxxx.com/apps/libs/hdldocs/pwr_voltage/lmz14202/docs/lmz14202_to-pmod7-

ep.pdf http://xxxx.xxxx.com/apps/libs/hdldocs/pwr_voltage/lmz14202/docs/lmz14202_to-pmod7-ep.pdfhttp://xxxx.xxxx.co

m / apps / libs / hdldocs / pwr_voltage / lmz14202 / docs / lmz14202h-data.pdf "

Может помочь либо Coldfusion, либо Regular Expression!Спасибо.

Ответы [ 2 ]

1 голос
/ 11 октября 2011
<cfscript>
examplestring = "http://xxxx.xxxx.com/apps/libs/hdldocs/pwr_voltage/lmz14202/docs/lmz14202_to-pmod7-ep.pdfhttp://xxxx.xxxx.com/apps/libs/hdldocs/pwr_voltage/lmz14202/docs/lmz14202_to-pmod7-ep.pdfhttp://xxxx.xxxx.com/apps/libs/hdldocs/pwr_voltage/lmz14202/docs/lmz14202h-data.pdfhttp://xxxx.xxxx.com/apps/libs/hdldocs/pwr_voltage/lmz14202/docs/lmz14202_to-pmod7-ep.pdfhttp://xxxx.xxxx.com/apps/libs/hdldocs/pwr_voltage/lmz14202/docs/lmz14202_to-pmod7-ep.pdfhttp://xxxx.xxxx.com/apps/libs/hdldocs/pwr_voltage/lmz14202/docs/lmz14202h-data.pdf";
aHREF = examplestring.split("http://");
</cfscript>

Я написал его как блок сценариев, но он работает так же хорошо со стандартными вызовами cfset.

В результате вы получаете массив URL с http: //, снятым спереди.Если первое, что есть в строке, это URL, то в итоге вы получите пустой элемент массива в первой позиции, но это должно дать вам хорошее начало.Это также должно быть значительно быстрее, чем использование функций ColdFusion с большими объемами данных, поскольку они идут напрямую к базовому объекту java.lang.String.

0 голосов
/ 11 октября 2011
<cfset myurls = ListToArray(ReplaceNoCase(str, "http://", "#chr(7)#http://", "all"), chr(7))>

, как указал user662486, нет причин делать это с регулярным выражением. код выше вернет массив с каждым элементом, содержащим полный URL.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...