我需要帮助来捕获所有的字符串在第三行使用REGEXP_SUBSTR。第三行中的字符串变化。我尝试了下面的模式,但它捕获其他行我只需要第三行,(abc| rty| qer)在这个字符串变化时不起作用。
图案:REGEXP_SUBSTR(Datasource,’(abc|rty|qer).*’)
数据源:
abc def ghi
pqr stu vwx
abc dfg qrt
zxc qet qwr
qep rty djf
ety fjf fjf
rty fgg tyy
rty tyy ffg
qwr tyy yyy
qer ggg rrf
qer ttg ggg
prw rjr trt
预期结果:
abc dfg qrt
rty fgg tyy
qer ttg ggg
3条答案
按热度按时间qyzbxkaa1#
正则表达式比普通的字符串函数慢。您可以简单地使用
INSTR
和SUBSTR
来查找第三行:其中,对于样本数据:
输出:
| 第三行|
| --|
| abc dfg qrt|
| rty fgg tyy|
| qer ttg ggg|
fiddle
shstlldc2#
你在一个列中存储一个多行字符串,你需要第三行。
你想使用
REGEXP_SUBSTR
。对于多行字符串,使用匹配参数'm '。默认情况下,点与新行不匹配,因此开始的'^'和结束的'$'指的是一行。你想要第三个,所以:
演示:https://dbfiddle.uk/5Cb90_M1
yx2lnoni3#
在这种情况下,您不需要
regex
,只需索引。将您的数据源想象为因此,在适用的情况下,使用索引而不是正则表达式。