Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regex 使用重替换删除代码_Regex_Coldfusion - Fatal编程技术网

Regex 使用重替换删除代码

Regex 使用重替换删除代码,regex,coldfusion,Regex,Coldfusion,您好,我有以下代码,我正在使用以下代码删除我不知道的页面内容: 我使用的是正则表达式,我不能使用jsoup,请不要提供任何jsoup链接或代码,因为这对我来说是无用的 <cfset removetitle = rereplacenocase(cfhttp.filecontent, '<title[^>]*>(.+)</title>', "\1")> 同样的,我想用以下几点: 1. <base href="http://search.google.

您好,我有以下代码,我正在使用以下代码删除我不知道的页面内容:

我使用的是正则表达式,我不能使用jsoup,请不要提供任何jsoup链接或代码,因为这对我来说是无用的

<cfset removetitle = rereplacenocase(cfhttp.filecontent, '<title[^>]*>(.+)</title>', "\1")>
同样的,我想用以下几点:

1. <base href="http://search.google.com">
2. <link rel="stylesheet" href="mystyle.css">
3. and there are 5 tables inside the body, i want to remove the 2nd table.,
有谁能在这方面提供指导吗?斯科特是对的,在你提出类似问题之前,jSoup是你最好的选择

至于正则表达式解决方案。这在正则表达式中是可能的,但是正则表达式不能总是解决一些问题。例如,如果第一个或第二个表包含嵌套表,则此正则表达式将跳闸。请注意,表格之间不需要文本,我只是演示了表格之间可以有文本

如果总是有一个嵌套表,正则表达式可以处理它,但如果有时有一个嵌套表,换句话说:未知,它会变得更混乱

<cfsavecontent variable="sampledata">
<body>
<table cellpadding="4"></table>stuff
is <table border="5" cellspacing="7"></table>between
<table border="3"></table>the
<table border="2"></table>tables
<table></table>
</body>
</cfsavecontent>

<cfset sampledata = rereplace(sampledata,"(?s)(.*?<table.*?>.*?<\/table>.*?)(<table.*?>.*?<\/table>)(.*)","\1\3","ALL") />
<cfoutput><pre>#htmleditformat(sampledata)#</pre></cfoutput>
然后在正则表达式中使用它,最终得到一个更为正则表达式友好的文档

然而,Scott说,最好不要使用合适的工具来完成任务:

这就像告诉木匠,给我盖房子,但不要用锤子


创建这些工具是因为程序员经常遇到您遇到的问题,因此他们创建了一个工具,并经常免费共享它,因为它做得更好。

看看jSoup-。它确实是HTML/DOM解析的最佳工具,Scott是对的。为什么jSoup不是一个选项?对于正则表达式解决方案,第二个表在文档中是否具有唯一的id属性?这在正则表达式中是可能的,但是正则表达式不能始终可靠地解决一些问题。为什么JSoup不是一个选项?没有任何正则表达式能像jsoup那样可靠地工作。如果你的客户不是程序员,他们甚至不理解你在说什么。如果你的客户是一名程序员,他们应该认可做正确的事情,更重要的是:可靠的方式。你的客户不应该命令你如何解决他们的问题。Regex根本不适合提取DOM元素。
<!-- table1 -->
  <table>...</table>
<!-- /table1 -->