问题标签 [regexp-replace]

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 投票
2 回答
315 浏览

oracle - Oracle REGEXP_SUBSTR 解析美元金额

我正在尝试从字符串中解析美元金额。

示例字符串:

  • *SOC 1369.00 - NCS 1239.46 = PT LIAB 129.54
  • *SOC 1369.00 - NCS 1239.46 = PT LIAB 140
  • *SOC = 1178.00
  • *SOC 1622.00 - NCS 209.74 = PT LIAB 1412.26 接受者年龄
  • *线#1 SOC 0.00 - NCS 22.77 = LIAB -22.77
  • SOC 符合并清除,SOC 2062-NCS 498.56=PT LIABLE 1563.44
  • *SOC 1622.00 - NCS 209.74 = PT LIAB 1412 接受者年龄 1234

我想提取患者责任,即文本“LIAB”、“PT LIAB”或“LIABLE”后面的美元金额。美元金额可以是负数,可能有也可能没有小数。

我的解决方案:

这似乎有点笨拙,我认为有一个更简单的解决方案。任何指导将不胜感激!

我正在使用 Toad for Oracle 12.8。

0 投票
2 回答
111 浏览

regex - SQL 中的正则表达式

我必须创建一个正则表达式,我需要用 NULL 替换 ORACLE 中动态查询的所有单词,但以 @ 字符开头的单词除外。例如:

SQL:

使用 REGEXP_REPLACE

应该有以下结果:

并用各种方法试了几个,还是不行。

他们知道你能不能做到这一点??以及正则表达式的严重程度。

我正在处理 PL / SQL

0 投票
2 回答
719 浏览

sql - 在 oracle 中使用 REGEXP_REPLACE 区分 CSV 值

我有一个表格,其中包含如下数据

我需要如下输出

输出

我尝试了以下查询。但是输出不一样。

但输出是

我只想使用 regexp_replace 来搜索模式。请帮帮我。

0 投票
2 回答
3921 浏览

oracle - 如何通过 Oracle 中的 regexp_replace 从逗号分隔列表中删除重复项?

我有

我想

我试过了

我得到了输出

但我希望输出是

请帮忙。

0 投票
1 回答
99 浏览

postgresql - PostgreSQL:如何从特殊字符开始的 varchar 字段中删除?(regexp_replace)

我想在 VARCHAR 字段(包括)中第一次出现字符“M”后删除所有内容。

所以SELECT regexp_replace('The world Mine is mine')

应该产生:'The world '

这相当于

SELECT left('The world Mine is mine',INSTR('The world Mine is mine','M',1,1)-1)

但是,如何在没有leftand的情况下实现这一点instr?很高兴得到回应。

0 投票
3 回答
42 浏览

javascript - RegExpr 和变量

我只有一个问题可能很愚蠢(就像每天一样)

但它不起作用,我不知道如何在 regexpr 中使用变量,谢谢,对不起我的英语

0 投票
1 回答
2900 浏览

regex - 如何使用 regexp_replace 仅替换捕获组而不是完整匹配字符串

我们在数据库中有一列包含类似于“150 W 96 Th St”和“4514 282 Nd St”的值。您可能已经注意到,数字街道名称和后缀之间有一个空格,即“96 TH”。

我正在尝试编写一个将删除该空间的 postgresql 查询。使用以下内容:

我得到:

表示只返回捕获组。

但是,当我跑步时

我明白了

替换整个匹配字符串的位置。

我也试过

我认为这只会取代第一个捕获组。

我还应该尝试什么?

0 投票
1 回答
305 浏览

sql - Oracle db:如何在字符串的特定位置添加空格

假设我有一个字符串 (varchar2),并且我想在有两个连续 a 的地方添加一个空格。例如: 'graanh' -> 'gra anh'.

好的,这很简单,无论是使用replace还是regexp_replace但两人都在三个或更多连续的 a 上窒息。例如:

这是因为对匹配模式的“下一个”匹配模式的搜索在“上一个”匹配模式的结尾之后开始。实际上,regexp_count('aaaaa', 'aa')返回 2,而不是 4。

想要的结果是'aaaaa' -> 'a a a a a'

实际上,问题在于我不想替换模式'aa'。我要替换的是空字符串两侧的空字符串 BETWEEN a's。所以描述会是这样的:找到所有出现的空字符串,两边都有a,然后用空格替换那个空字符串。

这可以用字符串或正则表达式函数来完成吗?请不要提供递归查询或(可怕的!)PL/SQL 过程的解决方案;我知道他们可以做到,但我感兴趣的是是否有一个“自然”的解决方案,一个正是针对这个问题而存在的工具,我错过了。

最坏的情况,replace(replace('aaaaa', 'aa', 'a a'), 'aa', 'a a')会成功的。这也是最好的情况吗?

以免您认为这是一个奇怪的要求:我正在尝试使用不同的方法来拆分逗号分隔的字符串。一些方法有一个非常讨厌的习惯,即忽略此类字符串中的 NULL 标记(也就是说,从两个连续的逗号中,您不会得到 NULL,因为您应该这样做)。因此,在使用这些方法之前,必须解析输入字符串并在连续的逗号之间添加一个空格或字符串“NULL”或其他内容。当然,最好在每个逗号之后(以及字符串的开头)添加一个空格,并且在拆分为标记之后,从每个标记的开头删除一个空格;但这提出了我上面提出的问题,我认为这本身就有优点。

谢谢!

编辑(2020 年 4 月 13 日)自从我第一次发布这个问题以来,我学到了很多关于正则表达式的知识。现在我知道了这个术语。(我发现我给出的解释是正确的,我只是没有使用技术术语。)我们需要在这里,能够在需要的地方一次添加空格,是环视- 和 Oracle 正则表达式不支持他们。结束编辑

0 投票
1 回答
612 浏览

matlab - 在 MATLAB 中使用 regexprep 删除 MATLAB 中括号内的字符

我想从 MATLAB 中的字符串中删除括号内的字符:

例如:我有字符串 S(+42.01)DKHDKPDISEVTKFDKSKLKKTEETHEKNPLPTKETIDQEKQG 但想删除括号并存储: SDKHDKPDISEVTKFDKSKLKKTETHEKNPLPTKETIDQEKQG

括号中的字符可以是文本、数字、文本数字和特殊字符的组合。括号也可以在同一个字符串中出现多次。

谢谢

0 投票
1 回答
3139 浏览

oracle11g - 如何仅在 Oracle SQL 中的字符串开头替换出现?

我有一个源列,我想搜索以 05、5 971971 和 97105 开头的字符串值以替换为 9715。如输出表所示。

SOURCE OUTPUT 0514377920 971514377920 544233920 971544233920 971971511233920 971511233920 9710511233920 971511233920

我尝试了以下适用于第一种情况的方法。

但是对于第二种情况,以下不起作用:

我的正则表达式有问题。正如我得到的:ORA-12727:正则表达式中的无效反向引用。