У меня есть унаследованное приложение, которое динамически создает ссылки HREF в отображаемом тексте.Казалось, что все работало хорошо, пока мы недавно не внесли изменения в базу данных, и наш список терминов для ссылки не начал возвращаться из запроса в другом порядке.Это выявило ошибку в существующем REGEX, когда он пытается поместить ссылку HREF в ранее существовавшую HREF.Просто навязать новый порядок в списке условий не вариант.Термин может быть только одним словом, может быть несколькими словами и даже может быть словами, отформатированными с использованием HTML.
Что мне нужно настроить в REGEX, чтобы он игнорировал термины в атрибуте HREF элемента A?Вот пример того, что я имею в виду:
<cfset Output = "This is some sample text to show the problem when we have term1 term2." />
<cfloop index="w" list="sample;term1 term2;term1" delimiters=";">
<cfset Output = "." & Variables.Output & "." />
<cfset Output = REReplaceNoCase(Variables.Output, "(?![</]#w#>)(\W)(#w#)(\W)", "\1<a href=""Display.cfm?Term=#urlencodedformat(w)#"">\2</a>\3", "one") />
<cfset Output = Mid(Variables.Output, 2, Len(Variables.Output)-2) />
</cfloop>
<cfoutput>#Variables.Output#</cfoutput>