匹配模式regex coldfusion
我需要使用匹配模式regex coldfusion,regex,coldfusion,pattern-matching,Regex,Coldfusion,Pattern Matching,我需要使用reMatchNoCase(((listid)”,“listid car van listid dog cat listid house house house hotel”)>匹配一个模式,这样listid就是这个模式,并且将所有内容都匹配到下一个模式,即listid。 因此,如果我转储重新匹配,我将得到一个结构,每个结构都以listid和其中的内容开头 这就是它应该看起来的样子 利斯蒂德轿车 猫狗 利斯蒂德之家酒店 等等 当我使用reMatchNoCase(“(listid)”,“
reMatchNoCase(((listid)”,“listid car van listid dog cat listid house house house hotel”)>匹配一个模式,这样listid就是这个模式,并且将所有内容都匹配到下一个模式,即listid。
因此,如果我转储重新匹配,我将得到一个结构,每个结构都以listid和其中的内容开头
这就是它应该看起来的样子
利斯蒂德轿车
猫狗
利斯蒂德之家酒店
等等
当我使用reMatchNoCase(“(listid)”,“listid car van listid dog cat listid house house house hotel”)>
时,它只会创建一个带有“listid”的结构,而不是像car van那样的结构。。。我应该使用什么正则表达式after(listid)来获取其中的所有内容
谢谢你可以使用这个正则表达式
listid.*?(?=(listid|$))
这个正则表达式所做的是定位一个后跟任何字符的“listid”,直到下一个“listid”或“行尾($)”。?=
是查找下一个“listid”的正向前瞻,但不将其作为匹配的一部分。*?
中的?
避免了*
的贪婪行为,并匹配下一个前向字符串。您可以使用此正则表达式
listid.*?(?=(listid|$))
这个正则表达式所做的是定位一个后跟任何字符的“listid”,直到下一个“listid”或“行尾($)”。?=
是查找下一个“listid”的正向前瞻,但不将其作为匹配的一部分。*?
中的?
避免了*
的贪婪行为,并匹配下一个前向字符串。这个正则表达式可能会这样做;我不知道coldfusion的详细信息,但它符合您的要求:
listid.*?(?=$|\slistid)
这个正则表达式可能就可以了;我不知道coldfusion的详细信息,但它符合您的要求:
listid.*?(?=$|\slistid)
我需要$newline做什么?如果我不想的话,它会不会被一条真正的新线搞砸呢?因为结尾没有“listid”,我们必须要有一些东西来预测最后一场比赛。因此使用了“$”。如果您删除它,它将与您示例中的“listid house hotel”不匹配。我不知道它在coldfusion中是如何实现的,但通常语言提供了一种在“多行”模式下支持正则表达式的方法。你可以试试看。此外,regex还有一个修饰符“/m”,如果遇到任何问题,您可以尝试使用它。cf使用apacheoro regex引擎,它支持(?m)
内联修饰符。或者,只需使用\z
而不是$
,以避免担心换行符,并且只在字符串末尾匹配。哦,而且前瞻中不需要括号。我需要$newline做什么?如果我不想的话,它会不会被一条真正的新线搞砸呢?因为结尾没有“listid”,我们必须要有一些东西来预测最后一场比赛。因此使用了“$”。如果您删除它,它将与您示例中的“listid house hotel”不匹配。我不知道它在coldfusion中是如何实现的,但通常语言提供了一种在“多行”模式下支持正则表达式的方法。你可以试试看。此外,regex还有一个修饰符“/m”,如果遇到任何问题,您可以尝试使用它。cf使用apacheoro regex引擎,它支持(?m)
内联修饰符。或者,只需使用\z
而不是$
,以避免担心换行,并且只在字符串末尾匹配。哦,而且前瞻中不需要括号。