Oracle Regexp_replace 字符串
Oracle Regexp_replace string
假设我有以下字符串:
notNull(devhx_8_other2_name_2) AND notNull(devhx_8_other2_amt)
如何使用regexp_replace
将其更改为:
(devhx_8_other2_name_2) is not null AND (devhx_8_other2_amt) is not null
使用以下 regexp_replace 函数:
regexp_replace(regexp_replace(string_name,"notNull",""),"')","') is not null")
在这里,我将 'notNull' 替换为非 space 即 '',然后将右括号即 ')' 替换为右括号、space 和文本 'is not null'。
假设您的字符串始终采用您显示的格式,则不需要正则表达式:
replace( replace( yourString, ')', ') is not null '), 'notNull', '')
使用
regexp_replace(col, 'notNull(\([^)]+\))', ' is not null', 1, 0)
这将查找 'notNull',紧接着是一个左括号、其他字符和一个右括号。它用包含括号但没有 'notNull' 的字符串替换它并附加 'is not null'.
您可以使用模式:
notNull
- 匹配字符串
(
- 启动捕获组
\(.+?\)
- 匹配左括号,然后匹配一个或多个字符,但尽可能少,直到它匹配右括号
)
- 捕获组结束。
然后用 is not null
替换它,这将用 </code> 替换第一个捕获组中匹配的值。像这样:</p>
<pre><code>SELECT REGEXP_REPLACE(
your_column,
'notNull(\(.+?\))',
' is not null'
)
FROM your_table
假设我有以下字符串:
notNull(devhx_8_other2_name_2) AND notNull(devhx_8_other2_amt)
如何使用regexp_replace
将其更改为:
(devhx_8_other2_name_2) is not null AND (devhx_8_other2_amt) is not null
使用以下 regexp_replace 函数:
regexp_replace(regexp_replace(string_name,"notNull",""),"')","') is not null")
在这里,我将 'notNull' 替换为非 space 即 '',然后将右括号即 ')' 替换为右括号、space 和文本 'is not null'。
假设您的字符串始终采用您显示的格式,则不需要正则表达式:
replace( replace( yourString, ')', ') is not null '), 'notNull', '')
使用
regexp_replace(col, 'notNull(\([^)]+\))', ' is not null', 1, 0)
这将查找 'notNull',紧接着是一个左括号、其他字符和一个右括号。它用包含括号但没有 'notNull' 的字符串替换它并附加 'is not null'.
您可以使用模式:
notNull
- 匹配字符串(
- 启动捕获组\(.+?\)
- 匹配左括号,然后匹配一个或多个字符,但尽可能少,直到它匹配右括号)
- 捕获组结束。
然后用 is not null
替换它,这将用 </code> 替换第一个捕获组中匹配的值。像这样:</p>
<pre><code>SELECT REGEXP_REPLACE(
your_column,
'notNull(\(.+?\))',
' is not null'
)
FROM your_table