Beg*_*ner 5 regex coldfusion coldfusion-10
我reMatch用来从列表中获取匹配的子字符串.但是当我使用前缀环视时,我收到错误.
序列(?<...)无法识别
码:
<cfset local.path = "schedule.category.classes.name,schedule.category.classes.id">
<cfset local.regex = "(?<=schedule.category.classes.)[a-zA-Z0-9_]*?(?=,|$)">
<cfset local.output = reMatch(local.regex, local.path)>
Run Code Online (Sandbox Code Playgroud)
我错过了什么?
您错过了有关阅读文档的信息;-) -正则表达式语法 - 使用特殊字符- CFML 的正则表达式风格(这是早已消亡的Apache ORO )不支持向后和周围查找。
然而,使用 java 的正则表达式实现很容易,它确实支持向后查找:java.util.regex.Pattern - 特殊构造(命名捕获和非捕获)。
我写了关于在 CFML 中使用 Java 正则表达式的三部分系列中的两部分:“ CFML 中的正则表达式(第 9 部分:Java 对正则表达式的支持 (1/3)) ”。我必须在某个时候回到第三部分,但无论如何你需要的是第一个耦合部分。
Ben Nadel 还撰写了大量有关在 CFML 中使用 Java 正则表达式的文章。如果你在查看@我的笔记时遇到困难,只需快速谷歌一下(但如果你这样做了,请告诉我你在哪里遇到困难,这样我就可以重新审视我的措辞!)。