【问题标题】:Regex - Select Link and everything before/after正则表达式 - 选择链接和之前/之后的所有内容
【发布时间】:2015-04-19 09:22:02
【问题描述】:

不幸的是,我无法将所有信息合并到一个有效的正则表达式中。

我正在尝试使用 yahoo 管道 将 RSS 帖子的 content 替换为之前包含在此帖子中的链接(HTML 格式)。

帖子中有各种链接,但只有一个带有我正在寻找的 urlparameter 的链接。我正在尝试提取 .txt.pdf 文件,filetype 的表达式是惰性的,因为稍后有更多指向 pdf/txt 文件的链接,我想要只选择第一个链接(据我了解,如果我不让它变得懒惰,直到文件类型的最后一次出现才会被选中)。

链接嵌入如下:

...Previous Link</a> – <a rel="nofollow" target="_blank" href="http://url.net/file/folder/filename.parameter.txt/pdf">description</a> – Next Link <a rel...

我需要选择此链接之前/之后的所有文本,因为我将整个选择替换为实际的纯文本链接。 到目前为止,我想出的是:

((.|\n)*)(http://url.*parameter.*?(txt|pdf))((.|\n)*)

它在 Regexr 中有效:http://regexr.com/3argq 但不幸的是,在放入 yahoo 管道时会导致以下错误:

无法完成正则表达式操作

我应该如何继续?

【问题讨论】:

  • 你好。什么是“PARAMETER”是大写的?它应该在链接中吗?
  • 我用大写字母写它以使其更明显,那是在我被建议用粗体写之前。整个链接用小写字母书写。是的,参数应该在链接中,因此必须包含在 REGEX 中,因为总是有两个或多个链接具有相同的 url。

标签: html regex yahoo-pipes


【解决方案1】:

您需要转义斜线 - 而不是 //\/\/

【讨论】:

  • 不幸的是,即使我应用了您推荐的更改,错误仍然存​​在。经过进一步研究,我发现 Yahoo Pipes 是用 Java 编写的,并且由于 Java 中的 Regex 语法略有不同,可能会出现一些错误 - 这可能与手头的问题有关吗?
猜你喜欢
  • 2016-04-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-05-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多