【发布时间】:2016-04-22 11:49:15
【问题描述】:
我必须挑战正则表达式。
- 问题:1
如果在我的 HTML 中,我如何替换 href="http://myserver.com"
[点击这里]。例如:
<a target="_blank" href="http://myserver.com" style="text-decoration: none; color: #fff;">Click here</a>
替换为
<a target="_blank" href="##" style="text-decoration: none; color: #fff;">Click here</a>
- 问题:2
在我的 HTML 中,我必须搜索关键字 ** ^mytag^ ** 并替换为一个值。 目前我正在循环中一一替换。
当前代码:
#replace(MYHTMLcontent,"^mytag^","Name","All")#
如果我可以搜索我所有的 html 关键字(在我的情况下类似于 ^keyword^)并添加到结构中,有没有办法。
谢谢
已编辑:添加我正在处理的新代码,如果有人可以帮助我,我会卡住。它正在替换我的 HTML 中的所有链接。
<cffunction name="htmlurl" returntype="any" >
<cfargument name="aHTMLTemplate" required="yes" type="any" default="">
<cfargument name="addr" required="yes" type="any" default="http://url.com"> <!--- OR ## --->
<cfset regex = createObject("java", "java.util.regex.Pattern").compile('href=\"[^\"]+\"')>
<cfset result = createObject("java", "java.lang.StringBuilder").init()>
<cfset var htmlcont = arguments.aHTMLTemplate />
<cfset var toReplaceURL = arguments.avolurladdr />
<cfset matcher = regex.matcher(htmlcont)>
<cfset last = 0>
<cfloop condition="matcher.find()">
<cfset result.append(
htmlcont.substring(
last,
matcher.start()
)
)>
<cfset token = matcher.group(
javaCast("int", ( matcher.groupCount() gte 1 ? 1 : 0 ))
)>
<cfset token = ("<a href='"& toReplaceURL & "'")>
<cfset result.append(token)>
<cfset last = matcher.end()>
</cfloop>
<cfset result.append(htmlcont.substring(last))>
<cfset result = result.toString()>
<cfreturn result>
</cffunction>
【问题讨论】:
-
我看不到任何问题。
-
我看到了两个问题。 (看来帖子已被编辑。)
标签: java regex coldfusion coldfusion-9 cfml