gpt4 book ai didi

正则表达式在coldfusion中匹配整个单词串

转载 作者:行者123 更新时间:2023-12-05 00:57:53 28 4
gpt4 key购买 nike

我正在尝试这个例子

第一个例子

keyword = "star"; 
myString = "The dog sniffed at the star fish and growled";
regEx = "\b"& keyword &"\b";
if (reFindNoCase(regEx, myString)) {
writeOutput("found it");
} else {
writeOutput("did not find it");
}

示例输出 -> 找到它

第二个例子
keyword = "star"; 
myString = "The dog sniffed at the .star fish and growled";
regEx = "\b"& keyword &"\b";
if (reFindNoCase(regEx, myString)) {
writeOutput("found it");
} else {
writeOutput("did not find it");
}

输出 -> 找到了

但我只想找到整个词。标点问题对我来说如何使用正则表达式作为第二个示例输出:没有找到它

最佳答案

Coldfusion 不支持后视,因此,您不能使用真正的“零宽度边界”检查。相反,您可以使用分组(幸运的是前瞻):

regEx = "(^|\W)"& keyword &"(?=\W|$)";

在这里, (^|\W)匹配字符串的开头和 (?=\W|$)确保有一个非单词字符( \W )或字符串的结尾( $ )。

the regex demo

但是,请确保在传递给正则表达式之前转义关键字。见 ColdFusion 10 now provides reEscape() to prepare string literals for native RE-methods .

另一种方法是匹配空格或字符串的开头/结尾:
<cfset regEx = "(^|\s)" & TABLE_NAME & "($|\s)">

关于正则表达式在coldfusion中匹配整个单词串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33960491/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com