正则表达式前缀环视在 coldfusion 10 中不起作用
Regex prefix lookaround not working in coldfusion 10
我正在使用 reMatch
从列表中获取匹配的子字符串。但是当我使用前缀环视时,我收到了错误。
Sequence (?<...) not recognized
代码:
<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)>
我错过了什么?
后视在 Coldfusion 正则表达式模式中不可用。而不是 reMatch
, you can use REReplace
删除您需要获取的字符串周围的所有内容:
<cfset local.path = "schedule.category.classes.name,schedule.category.classes.id">
<cfset local.regex = "schedule\.category\.classes\.([a-zA-Z0-9_]+).*$">
<cfset local.output = REReplace(local.path,local.regex,"")>
您没有阅读文档 ;-) - Regular expression syntax - Using special characters - Look behinds & arounds are not supported in CFML's flavour of regex (which is long-dead Apache ORO).
然而,使用 java 的正则表达式实现非常简单, 支持回顾:java.util.regex.Pattern - Special constructs (named-capturing and non-capturing).
我已经写了关于在 CFML 中使用 Java 正则表达式的三部分系列中的两部分:“Regular expressions in CFML (part 9: Java support for regular expressions (1/3))”。我必须在某个时候回去做第 3 部分,但无论如何你需要的是第一个 coupla 部分。
Ben Nadel 还撰写了大量关于在 CFML 中使用 Java 正则表达式的文章。如果您在查看@我的笔记时遇到问题,请快速 google(但如果您这样做,请告诉我您遇到的问题,以便我重新审视我的措辞!)。
我正在使用 reMatch
从列表中获取匹配的子字符串。但是当我使用前缀环视时,我收到了错误。
Sequence (?<...) not recognized
代码:
<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)>
我错过了什么?
后视在 Coldfusion 正则表达式模式中不可用。而不是 reMatch
, you can use REReplace
删除您需要获取的字符串周围的所有内容:
<cfset local.path = "schedule.category.classes.name,schedule.category.classes.id">
<cfset local.regex = "schedule\.category\.classes\.([a-zA-Z0-9_]+).*$">
<cfset local.output = REReplace(local.path,local.regex,"")>
您没有阅读文档 ;-) - Regular expression syntax - Using special characters - Look behinds & arounds are not supported in CFML's flavour of regex (which is long-dead Apache ORO).
然而,使用 java 的正则表达式实现非常简单, 支持回顾:java.util.regex.Pattern - Special constructs (named-capturing and non-capturing).
我已经写了关于在 CFML 中使用 Java 正则表达式的三部分系列中的两部分:“Regular expressions in CFML (part 9: Java support for regular expressions (1/3))”。我必须在某个时候回去做第 3 部分,但无论如何你需要的是第一个 coupla 部分。
Ben Nadel 还撰写了大量关于在 CFML 中使用 Java 正则表达式的文章。如果您在查看@我的笔记时遇到问题,请快速 google(但如果您这样做,请告诉我您遇到的问题,以便我重新审视我的措辞!)。