问题标签 [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 投票
5 回答
68551 浏览

sql - 使用 regexp_substr 在 Oracle 中按空格和字符拆分字符串作为分隔符

我正在尝试使用 regexp_subtr 拆分字符串,但我无法使其工作。

所以,首先,我有这个查询

很好地提取了我的分隔符 -空白-空白

但是,当我尝试使用此选项拆分字符串时,它就不起作用了。

查询不返回任何内容。

帮助将不胜感激!谢谢

0 投票
1 回答
364 浏览

oracle - 使用 regex_substr 从 oracle 中的另一列获取相应的值

我有以下有效的查询,它给出了与我在 where 子句中给出的键相对应的第 n 个字符串作为名称(分隔符是 ##)

现在,我有一个表 temp,其中 x 有 3 列 x、y 和 z,其中 x 有类似 a##b##c##d##e##f 的字符串,y 有 1##2##3##4##5## 6 和 z 的数字类似于 1。

如果我有像这样的行

  • a##b##c##d##e##f 150##200##13##8##51##61 200
  • a##b##c##d##e##f 1##2##3##4##5##6 2
  • g##h##i##j##k##l 1##2##3##4##5##99 99

我想要像这样的输出

  • a##b##c##d##e##f 150##200##13##8##51##61 200 b
  • a##b##c##d##e##f 1##2##3##4##5##6 2 b
  • g##h##i##j##k##l 1##2##3##4##5##99 99 l

在上述查询中简单地插入“temp”代替 dual 需要很长时间,因为 db 有超过 50k 行。任何更好的解决方案或如何解决这个问题?

0 投票
3 回答
12842 浏览

oracle - 将“regexp_substr”(Oracle)转换为 PostgreSQL

我在 Oracle SQL 中有查询:

结果的前 2 行是:

我需要在 PostgreSQL 上获得相同的结果(对于带有 的行regexp_substr(town_name, '[^A,]+', 1, rownum) as c_rownum),但我不知道如何。你可以帮帮我吗?谢谢。

0 投票
3 回答
2398 浏览

oracle - oracle SQL:改进 connect by 子句

我有一张桌子: Table_1 如下所示:

我想要的是转换表如下所示:

为此,我使用了这样的查询:

只要逗号分隔值的数量较少,此查询就可以正常工作。但是当它长大时,它会消耗越来越多的时间来处理。

我想到的一种解决方案是创建一个单独的表,然后通过迭代 Table_1 的值来插入值。

伪代码如下:

但是由于随着逗号分隔值的增长,这也会消耗很多时间,是否有任何其他最佳方法可以做到这一点(最好不要使用另一个表,但临时/虚拟表可以)?

我正在使用 Oracle SQL。

提前致谢。

0 投票
2 回答
4814 浏览

db2 - 在 DB2 中使用 REGEXP_SUBSTR

我想在 DB2(10.5 版)中使用类似 REGEXP_SUBSTR 的东西。

有一个我尝试过的例子:

我收到此错误:[错误代码:-420,SQL 状态:22018]

0 投票
3 回答
586 浏览

oracle11g - REGEXP_SUBSTR 返回第一个和最后一个段

我有一个数据集,它可以存储几个不同变体的帐号。它可能包含连字符或空格作为段分隔符,也可能是完全连接的。我想要的输出是前三个和后五个字母数字字符。我在加入“FIRST_THREE_AND_LAST_FIVE”这两个部分时遇到问题:

我想要的输出是:

0 投票
2 回答
30 浏览

regex - 从带有特殊字符的字符串转换为数字

我有一个具有以下值的输入列。

预期输出

我正在尝试使用 REGEXP_REPLACE 并尝试替换每个不是数字或“。”的字符 这样1.2%就变成了1.2。这是我尝试过的查询,但这没有用。

谁能建议如何做到这一点?我做错了什么?我正在与 pl/sql 开发人员一起开发 Oracle 11.2 数据库。

0 投票
2 回答
1930 浏览

sql - 使用正则表达式(Oracle)从管道分隔的字符串中获取值

我有一个如下所示的示例源字符串,它采用管道分隔格式,因为值obr可以在任何地方。我需要从obr的第一次出现中获取管道的第二个值。因此,对于以下源字符串,预期将是,

源字符串:

预期输出:

我已经在 oracle sql 中尝试了以下正则表达式,但它不能正常工作。

当字符串以 OBR 开头时它工作正常,但是当 OBR 像上面的示例一样位于中间时它不能正常工作。

任何帮助,将不胜感激。

0 投票
1 回答
424 浏览

sql - oracle regexp_substr for random occurrence of a pattern

Hi I need to find a pattern which randomly occur in a string in any order

The values in a column may be like these

I need to pick up the value against n= till ',' else if it occurs at the end till last. but n can occur any where in the string.

0 投票
0 回答
116 浏览

regex - 加快创建 PL/SQL 函数/过程依赖项列表

我们正在创建一个在 PL/SQL 中执行受限版本软件时使用的函数和过程的列表。虽然我们的过程很慢,但我们希望找到一种更快的方法来查找在给定函数或过程的代码中进行的函数或过程调用。在这篇文章中,函数和过程这两个词可以互换使用……

我们目前的流程:

1) 使用 regexp_substr 获取表中给定函数的函数源代码:

2) 对于函数源的每个单词(慢!),我们查找“外部”函数调用(例如 package_name.function_name(param1,param2..)),删除它们,然后扫描本地函数调用(例如 function_name(param1 ,param2..))。每次我们找到一个新的函数/过程,我们将它添加到一个函数名表中。

理想情况下,我想获得每个函数的依赖项列表,就像你做一个表一样。例如:

这样我们就可以遍历列表,查询每个函数/过程名称并将它们的依赖项添加到列表中,而不必依赖正则表达式并遍历每个单词。可悲的是,这似乎不存在。任何建议或意见将不胜感激。