У меня есть веб-страница 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
Может помочь либо Coldfusion, либо Regular Expression!Спасибо.
<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.
<cfset myurls = ListToArray(ReplaceNoCase(str, "http://", "#chr(7)#http://", "all"), chr(7))>
, как указал user662486, нет причин делать это с регулярным выражением. код выше вернет массив с каждым элементом, содержащим полный URL.