【问题标题】:ColdFusion - Regex to match SRC with single quotesColdFusion - 正则表达式将 SRC 与单引号匹配
【发布时间】:2012-08-03 15:21:11
【问题描述】:

我有一个简单的正则表达式行来从图像标签中提取 src="" 值:

<cfset variables.attrSrc = REMatch("(?i)src\s*=\s*""[^""]+", variables.myImageTag) />

<!--- REMatch("(?i)src\s*=\s*""[^""]+" --->

然而,虽然这很好用,但它似乎不适用于显示单引号而不是双引号的 src='' 属性。

理想情况下,我希望它同时使用单引号和双引号。

有什么想法吗?

谢谢, 迈克尔。

【问题讨论】:

  • 图片标签字符串从何而来?即如果你有src=filename.pngaltsrc="..."data-src="..." 会发生什么?如果你不能完全控制输入,你应该使用 HTML 解析器(例如jsoup)来处理这个,而不是正则表达式。
  • 好主意。我在共享主机上 - 这是我可以自己安装的东西还是需要任何较低级别的访问权限?我根本不精通Java。
  • 取决于共享主机以及它们是否启用了 Java - 在 Railo 上,您可以将 JAR 文件放在同一目录中并执行 createObject('java','org.jsoup.Jsoup','./jsoup-1.6.3.jar') - 如果可行,则可以使用。

标签: regex coldfusion coldfusion-9 railo


【解决方案1】:
(?i)src\s*=\s*(""[^""]+""|'[^']+')

【讨论】:

  • 这实际上会导致 CFML 上下文中的语法错误。也许某处引用过多?
  • 我添加了另一个双引号来转义导致问题的其中一个。对于任何想知道的人,它应该是: (?i)src\s*=\s*(""[^""]+""|'[^']+') ...所以在 CFML 中,它是: REMatch("(?i)src\s*=\s*(""[^""]+""|'[^']+')", variables.myImageTag)
  • @MichaelGiovanniPumo - 哎呀,对不起。忘记逃跑了。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多