gpt4 book ai didi

regex - Oracle REGEXP_LIKE和单词边界

转载 作者:行者123 更新时间:2023-12-03 09:06:17 24 4
gpt4 key购买 nike

我在用REGEXP_LIKE匹配单词边界时遇到问题。以下查询按预期返回单行。

select 1 from dual
where regexp_like('DOES TEST WORK HERE','TEST');

但是我也想在单词边界上匹配。因此,添加“\ b”字符​​可得到此查询
select 1 from dual
where regexp_like('DOES TEST WORK HERE','\bTEST\b');

运行此命令将返回零行。有任何想法吗?

最佳答案

我相信你想尝试

 select 1 from dual 
where regexp_like ('does test work here', '(^|\s)test(\s|$)');

因为 \b没有出现在此列表中: D.3 Perl-influenced Extensions in Oracle Regular Expressions
\s确保测试以空格开头和结尾。但是,这还不够,因为字符串 test也可能出现在要匹配的字符串的开头或结尾。因此,我将替代(由 |表示) ^用作字符串的开头,并将 $用作字符串的结尾。

更新(3年后)...
碰巧的是,我今天需要此功能,而且对我来说似乎更好的是,正则表达式是 (^|\W)test($|\W)( The missing \b regular expression special character in Oracle)。

关于regex - Oracle REGEXP_LIKE和单词边界,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7567700/

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