gpt4 book ai didi

sql - Oracle:使用正则表达式从查询中排除结果

转载 作者:行者123 更新时间:2023-12-04 23:44:02 25 4
gpt4 key购买 nike

使用 linq (.net 3.5 +) 和 predicate builder ,我是这样做的:

var startsWith3Chars = new System.Text.RegularExpressions.Regex(@"^[a-zA-Z]{3}\-", System.Text.RegularExpressions.RegexOptions.Compiled);
wherePredicate = wherePredicate.And(x => startsWith3Chars.Matches(x.MATERIALUID).Count > 0);

但现在我需要在命令文本中进行过滤。

有没有办法使用类似 REGEXP_INSTR 的东西来限制基于正则表达式的结果?

最佳答案

鉴于此测试数据......

SQL> select name
2 from t23
3 /

NAME
----------
SAM-I-AM
MR KNOX
X11
CAT
LORAX

SQL>

...以下查询使用 REGEXP_LIKE() 返回前四个字符仅包含字母或连字符的记录:

SQL> select name
2 from t23
3 where regexp_like(name, '^[[:alpha:]\-]{4}')
4 /

NAME
----------
SAM-I-AM
LORAX

SQL>

我们还可以使用具有相同基本模式的 REGEXP_INSTR()(我去掉了前导插入符):

SQL> select name
2 from t23
3 where regexp_instr(name, '[[:alpha:]\-]{4}', 1) = 1
4 /

NAME
----------
SAM-I-AM
LORAX

SQL>

Oracle 在 10g 版本中为其 SQL 添加了完整的正则表达式支持。 Find out more .

关于sql - Oracle:使用正则表达式从查询中排除结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3135944/

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