问题标签 [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.
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。
regex - SQL 中的正则表达式
我必须创建一个正则表达式,我需要用 NULL 替换 ORACLE 中动态查询的所有单词,但以 @ 字符开头的单词除外。例如:
SQL:
使用 REGEXP_REPLACE
应该有以下结果:
并用各种方法试了几个,还是不行。
他们知道你能不能做到这一点??以及正则表达式的严重程度。
我正在处理 PL / SQL
sql - 在 oracle 中使用 REGEXP_REPLACE 区分 CSV 值
我有一个表格,其中包含如下数据
我需要如下输出
输出
我尝试了以下查询。但是输出不一样。
但输出是
我只想使用 regexp_replace 来搜索模式。请帮帮我。
oracle - 如何通过 Oracle 中的 regexp_replace 从逗号分隔列表中删除重复项?
我有
我想
我试过了
我得到了输出
但我希望输出是
请帮忙。
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)
但是,如何在没有left
and的情况下实现这一点instr
?很高兴得到回应。
javascript - RegExpr 和变量
我只有一个问题可能很愚蠢(就像每天一样)
但它不起作用,我不知道如何在 regexpr 中使用变量,谢谢,对不起我的英语
regex - 如何使用 regexp_replace 仅替换捕获组而不是完整匹配字符串
我们在数据库中有一列包含类似于“150 W 96 Th St”和“4514 282 Nd St”的值。您可能已经注意到,数字街道名称和后缀之间有一个空格,即“96 TH”。
我正在尝试编写一个将删除该空间的 postgresql 查询。使用以下内容:
我得到:
表示只返回捕获组。
但是,当我跑步时
我明白了
替换整个匹配字符串的位置。
我也试过
我认为这只会取代第一个捕获组。
我还应该尝试什么?
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 正则表达式不支持他们。结束编辑
matlab - 在 MATLAB 中使用 regexprep 删除 MATLAB 中括号内的字符
我想从 MATLAB 中的字符串中删除括号内的字符:
例如:我有字符串 S(+42.01)DKHDKPDISEVTKFDKSKLKKTEETHEKNPLPTKETIDQEKQG 但想删除括号并存储: SDKHDKPDISEVTKFDKSKLKKTETHEKNPLPTKETIDQEKQG
括号中的字符可以是文本、数字、文本数字和特殊字符的组合。括号也可以在同一个字符串中出现多次。
谢谢
oracle11g - 如何仅在 Oracle SQL 中的字符串开头替换出现?
我有一个源列,我想搜索以 05、5 971971 和 97105 开头的字符串值以替换为 9715。如输出表所示。
SOURCE OUTPUT
0514377920 971514377920
544233920 971544233920
971971511233920 971511233920
9710511233920 971511233920
我尝试了以下适用于第一种情况的方法。
但是对于第二种情况,以下不起作用:
我的正则表达式有问题。正如我得到的:ORA-12727:正则表达式中的无效反向引用。