使用ColdFusion正则表达式在较大的字符串中获取带有HTML标记的字符串

时间:2015-07-22 17:26:18

标签: regex coldfusion-9

我是正则表达式的新手,可以使用一些帮助。

我正在尝试使用ColdFusion REReplace来抓取数据并获取我想要的内容。

这是我到目前为止所做的:

<cfoutput>
#REReplace("Remove this please <p>Make this Display Please</p> Remove this please", "", "", "All")#
</cfoutput>

正则表达式可以使用该字符串并仅返回“请显示此内容”?

1 个答案:

答案 0 :(得分:2)

为了从更长的字符串中获取子文本,您需要根据需要匹配所有内容,使用捕获组(...)捕获所需内容,然后将字符串的其余部分与结束。替换为\1反向引用,引用捕获组捕获的文本。

所以,使用

#REReplace("Remove this please <p>Make this Display Please</p> Remove this please", ".*<p>(.*?)</p>.*", "\1", "All")#

正则表达式匹配:

  • .* - 匹配任何字符,但从最开始到最后</p>
  • 的换行符
  • <p> - 文字<p>
  • (.*?) - 除了换行符号之外的0个或多个字符尽可能少(这意味着最接近</p>这里)
  • </p> - 匹配文字</p>
  • .* - 将文本的其余部分与结尾匹配(无新行)。

要匹配换行符,请使用[\s\S]代替.