Regexp_substr 在某些字符集后提取 Oracle

拉吉A

您好,我只需要 1 个表达式来满足以下所有 3 个条件。字符串将始终以CALL开头(

Replace更好地工作或Substr

1) 在 ) 之后选择 4 个字符

2)在RX后选择4个字符:

3) 在 PASS 前选择 4 个字符 例如:

CALL RX: W234    =>W234
(S123) T123 #100 =>T123
CALL Y123 PASS   =>Y123
CALL Q12  PASS   =>Q12

我试过我试过 Replace REGEXP_REPLACE(text,'CALL (RX:)?|PASS|\(.*\)|[[:punct:]].*')但它没有为此字符串提取 LXC2 (D123) LXC2 99

加里_W

这是一个单线。公共表表达式(with 子句)只是为了举例而设置数据集:

with tbl(idx, data) as (
  select 1, 'CALL RX: W234' from dual union all
  select 2, '(S123) T123 #100' from dual union all
  select 3, 'CALL Y123 PASS' from dual union all
  select 4, 'CALL Q12  PASS' from dual union all
  select 5, '(D123) LXC2 99' from dual
) 
select idx, 
  regexp_substr(data, '^(CALL|\(.*?\)) (RX: )?(.*?)( |PASS|$)', 1, 1, null, 3) result
from tbl;


       IDX RESULT          
---------- ----------------
         1 W234            
         2 T123            
         3 Y123            
         4 Q12             
         5 LXC2            

5 rows selected.

它使用组来匹配'CALL'以括号内的任何字符或一组任何字符开头的行,后跟一个空格,然后是一个可选的'RX:'字符串'PASS'非贪婪地捕获下一组后跟空格、字符串或行尾的字符这恰好是第 6 个参数返回的第三组。

请注意,这适用于您提供的示例数据集。如果您有不同的示例,您可能需要对正则表达式进行一些调整。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Oracle SQL regexp_substr数字提取行为

来自分类Dev

oracle中的REGEXP_SUBSTR

来自分类Dev

在 Oracle 中使用 REGEXP_SUBSTR 从字符串中提取 ID 号

来自分类Dev

为什么Oracle SQL函数regexp_substr不返回所有匹配的字符?

来自分类Dev

PIVOT的Oracle REGEXP_SUBSTR列名称

来自分类Dev

oracle中REGEXP_SUBSTR中的混乱

来自分类Dev

关于 Regexp_substr 的 Oracle 查询

来自分类Dev

如何转义'[',']','|'等字符 在regexp_substr中

来自分类Dev

使用regexp_substr在Oracle中按空格和字符分隔字符串作为定界符

来自分类Dev

Oracle REGEXP_SUBSTR忽略字符的第一次出现,但包括第二次出现

来自分类Dev

Oracle中REGEXP_SUBSTR的正则表达式

来自分类Dev

ORACLE REGEXP_SUBSTR与方括号之间的数字匹配

来自分类Dev

oracle regexp_substr用于模式的随机出现

来自分类Dev

Oracle 11G REGEXP_SUBSTR函数

来自分类Dev

用于 ORACLE DB 查询中的分号的 Regexp_Substr

来自分类Dev

验证 Oracle REGEXP_SUBSTR 中的子表达式

来自分类Dev

如何使用Oracle 10g REGEXP_SUBSTR使用字符串定界符提取字符串

来自分类Dev

使用REGEXP_SUBSTR提取部分字符串

来自分类Dev

Oracle SQL:从两个字符串之间的 blob 返回字符串(可能使用 REGEXP_SUBSTR)

来自分类Dev

REGEXP_SUBSTR转换后的输出未转换为整数

来自分类Dev

使用 REGEXP_SUBSTR 或 SUBSTR 函数在 Oracle SQL 中“第一个 _(下划线)后开始”和“第二个 _(下划线)结束”中查找子字符串

来自分类Dev

在sql oracle中使用regexp_substr在特定单词之后获取单词

来自分类Dev

Oracle SUM(TO_NUMBER(REGEXP_SUBSTR,带有十进制数字

来自分类Dev

Oracle REGEXP_SUBSTR无法与我的模式一起使用

来自分类Dev

需要使用REGEXP_SUBSTR提取文本-找不到正确的组合

来自分类Dev

regexp_substr 获取字符串值和管道之间的字符串

来自分类Dev

REGEXP_SUBSTR查询

来自分类Dev

Oracle SQL正则表达式RegExp_SubStr行尾(搜索文本中的chr(10)返回null

来自分类Dev

我正在寻找使用REGEXP_SUBSTR从给定的字符串集中提取子字符串

Related 相关文章

  1. 1

    Oracle SQL regexp_substr数字提取行为

  2. 2

    oracle中的REGEXP_SUBSTR

  3. 3

    在 Oracle 中使用 REGEXP_SUBSTR 从字符串中提取 ID 号

  4. 4

    为什么Oracle SQL函数regexp_substr不返回所有匹配的字符?

  5. 5

    PIVOT的Oracle REGEXP_SUBSTR列名称

  6. 6

    oracle中REGEXP_SUBSTR中的混乱

  7. 7

    关于 Regexp_substr 的 Oracle 查询

  8. 8

    如何转义'[',']','|'等字符 在regexp_substr中

  9. 9

    使用regexp_substr在Oracle中按空格和字符分隔字符串作为定界符

  10. 10

    Oracle REGEXP_SUBSTR忽略字符的第一次出现,但包括第二次出现

  11. 11

    Oracle中REGEXP_SUBSTR的正则表达式

  12. 12

    ORACLE REGEXP_SUBSTR与方括号之间的数字匹配

  13. 13

    oracle regexp_substr用于模式的随机出现

  14. 14

    Oracle 11G REGEXP_SUBSTR函数

  15. 15

    用于 ORACLE DB 查询中的分号的 Regexp_Substr

  16. 16

    验证 Oracle REGEXP_SUBSTR 中的子表达式

  17. 17

    如何使用Oracle 10g REGEXP_SUBSTR使用字符串定界符提取字符串

  18. 18

    使用REGEXP_SUBSTR提取部分字符串

  19. 19

    Oracle SQL:从两个字符串之间的 blob 返回字符串(可能使用 REGEXP_SUBSTR)

  20. 20

    REGEXP_SUBSTR转换后的输出未转换为整数

  21. 21

    使用 REGEXP_SUBSTR 或 SUBSTR 函数在 Oracle SQL 中“第一个 _(下划线)后开始”和“第二个 _(下划线)结束”中查找子字符串

  22. 22

    在sql oracle中使用regexp_substr在特定单词之后获取单词

  23. 23

    Oracle SUM(TO_NUMBER(REGEXP_SUBSTR,带有十进制数字

  24. 24

    Oracle REGEXP_SUBSTR无法与我的模式一起使用

  25. 25

    需要使用REGEXP_SUBSTR提取文本-找不到正确的组合

  26. 26

    regexp_substr 获取字符串值和管道之间的字符串

  27. 27

    REGEXP_SUBSTR查询

  28. 28

    Oracle SQL正则表达式RegExp_SubStr行尾(搜索文本中的chr(10)返回null

  29. 29

    我正在寻找使用REGEXP_SUBSTR从给定的字符串集中提取子字符串

热门标签

归档