парсинг URL и заголовка из строки нескольких тегов href в coldfusion - PullRequest
0 голосов
/ 25 августа 2010

Мне нужно проанализировать URL и заголовок из нескольких тегов href в регулярном выражении строки ... мне нужно получить каждый URL и заголовок в переменную
например.

<DT><A HREF="http://www.partyboatnj.com/" ADD_DATE="1210713679" LAST_VISIT="1225055180"     LAST_MODIFIED="1210713679">NJ Party Boat - Sea Devil of Point Pleasant Beach, NJ</A> 
<DT><A     HREF="http://www.test.com/" ADD_DATE="1210713679" LAST_VISIT="1225055180"     LAST_MODIFIED="1210713679">test parse</A> 
 <DT><A HREF="http://www.google.com/"     ADD_DATE="1210713679" LAST_VISIT="1225055180" LAST_MODIFIED="1210713679">google</A>

1 Ответ

1 голос
/ 26 августа 2010

Хорошо, если я правильно понимаю, я бы сделал что-то вроде этого:

<cffunction name="reMatchGroups" access="public" returntype="array" output="false">
    <cfargument name="text" type="string" required="true" />
    <cfargument name="pattern" type="string" required="true" />
    <cfargument name="scope" type="string" required="false" default="all" />

    <cfscript>
         l = {};
         l.results = [];

         l.pattern = createObject("java", "java.util.regex.Pattern").compile(javacast("string", arguments.pattern));
         l.matcher = l.pattern.matcher(javacast("string", arguments.text));

         while(l.matcher.find()) {
             l.groups = {};

             for(l.i = 1; l.i <= l.matcher.groupCount(); l.i++) {
                 l.groups[l.i] = l.matcher.group(javacast("int", l.i));
             }

             arrayAppend(l.results, l.groups);

             if(arguments.scope == "one")
                 break;
         }

         return l.results;
   </cfscript>      
</cffunction>

Приведенная выше функция возвращает группы для каждого совпадения с регулярным выражением.

Вы можете использовать это так:

<cfset a = reMatchGroups("<a href=""http://iamalink.com"" class=""testlink"">This is a link</a>", "href=[""']([^""|']*)[""'][^>]*>([^<]*)", "all") />

Что даст вам массив структур с парами ключ-значение для каждой обратной ссылки в регулярном выражении. В этом случае href и текст узла.

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