问题标签 [regexp-substr]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
1033 浏览

oracle - Regexp_substr 查找与一组字符不匹配的字符串

我有一个像mystr = 'value1~|~value2~|~ ... valuen". 我需要它作为一列分隔在这样的行上:

我正在尝试这个

问题是它~|~不被视为一个组,如果我将 ~ 添加到字符串中的任何位置,它就会被分开;() 也被视为分隔符。

非常感谢任何帮助!谢谢!~|~

0 投票
1 回答
84 浏览

sql - SQL - 从字符串中接收多个模式

假设我有一个 2 列的表,在第 1 列。是一个帐号,在第二个个人客户 ID 中,但在一个长字符串中。在该字符串中可能有几个不同的客户端 ID,每个都以“ID”开头

我怎样才能在单行中收到这样的结果?:

使用regexp_substr(upper(note), 'ID[[:digit:]]{4}')它只返回整个字符串中的第一个 ID。

任何循环或正则表达式有什么技巧吗?

0 投票
2 回答
1131 浏览

plsql - regexp_substr- 提取多行文本中的数字

我在 oracle 表中有一个字符串,如下所示。我需要在文本“每月税额(财产税):”之后提取金额。每个项目都在新行中,与项目对应的金额在描述旁边的同一行中提到。我尝试开发一些 regexp_substr 函数但没有取得多大成功。请帮助解决这个问题。

0 投票
3 回答
377 浏览

regex - POSIX ERE 正则表达式查找重复的子字符串

我有一组包含最少 1 个和最多 3 个值的字符串,格式如下:

我正在尝试编写一个正则表达式,以便我可以找到在同一个字符串上重复的值,所以如果你有123;456;789它会返回null但如果你有123;456;456它会返回456123;456;123返回123

我设法写了这个表达式:

它的工作原理是在null没有重复值时返回,但它不完全返回我需要的值,例如:对于123;456;456它返回的字符串和它返回123;456;456的字符串123;123;123123;123

我需要的是只返回([0-9]+)表达式部分的值,从我读过的内容来看,这通常是使用非捕获组来完成的。但是要么我做错了,要么 Oracle SQL 不支持这一点,就好像我尝试使用?:语法结果不是我期望的那样。

关于如何在 oracle sql 上进行此操作的任何建议?此表达式的目的是在查询中使用它。

编辑:

实际上根据https://docs.oracle.com/cd/B12037_01/appdev.101/b10795/adfns_re.htm

Oracle 数据库实现了符合 POSIX 扩展正则表达式 (ERE) 规范的正则表达式支持。

根据https://www.regular-expressions.info/refcapture.html

POSIX ERE 不支持非捕获组

0 投票
1 回答
1311 浏览

oracle - REGEXP SUBSTR,其中分隔符是 2 个或更多字符的组合

我想使用由 2 个或多个字符组合而成的分隔符来搜索字符串。

请在下面找到我尝试过的查询:

所需输出:

输出:

我知道使用用户定义的函数 [with INSTR+SUBSTR] 很容易,但是我正在寻找 REGEXP_SUBSTR 的答案和解释。

提前致谢。

0 投票
1 回答
70 浏览

sql - Oracle SQL 语句在 '\' 和 '#' 之间选择字符串

我在 Oracle 11g 数据库中有一个表,其中有一个名为 REPORT 的列。我正在尝试编写一个 select 语句,它将在下面显示所需的结果。我需要选择“\”和随后出现的“#”之间的字符串。我认为这可以使用 regexp_substr 函数来完成,但我没有取得任何成功。我有太多上周尝试失败的例子,无法在此处发布。任何帮助,将不胜感激。

REPORT_COLUMN

所需结果:

0 投票
3 回答
106 浏览

oracle - REGEXP 捕获由一组分隔符分隔的值

我的列值如下所示:[只是我创建的一个示例]

{BASICINFOxxxFyyy100x} {CONTACTxxx12345yyy20202x}

它可以包含 0 个或多个数据块...我创建了以下查询来拆分块

但是,我想进一步将输出拆分为 3 列,如下所示:

分隔符始终是标准的。我未能创建一个漂亮的查询来给我想要的输出。

提前致谢。

0 投票
1 回答
98 浏览

oracle - 拆分为行和列 Oracle

我正在创建一个基于链的拆分返回表类型对象的函数,查询如下:

结果如下:

我需要得到以下结果

希望您的宝贵帮助!!!

0 投票
1 回答
3050 浏览

regexp-substr - regexp_substr 从 Oracle SQL 中的句子末尾获取最后两个单词

我有一个字符串:ON P6B 0B8。我需要的输出是:P6B OB8.

我可以用它regexp_substr('ON P6B 0B8','[^ ]+$',1)来获取句子末尾的最后一个单词。但是我如何得到空格后面的单词——从末尾数的第二个单词?

我如何告诉regexp_substr从后面看时不要停在第一个空格,而是继续前进直到它碰到第二个空格?

我很难理解 Oracle regexp 提供的元字符。

0 投票
2 回答
276 浏览

sql - Oracle sql 连接表基于一个表包含另一个表的字段中的单词

我正在尝试将两个表连接在一起,如下所示。

我只想加入表 A 中的 field1 具有与表 B 中的单词完全相同的单词,但不是另一个单词的一部分。所以 GO 和 OK GO 会加入成功,FOREGO 将不允许加入。

我有一种预感,我会使用 reg_exp 来完成连接,但我不知道如何实现。