我们说我有以下字符串:
lib
如何使用notNull(devhx_8_other2_name_2) AND notNull(devhx_8_other2_amt)
将其更改为:
regexp_replace
答案 0 :(得分:1)
假设您的字符串始终采用您展示的格式,则不需要正则表达式:
replace( replace( yourString, ')', ') is not null '), 'notNull', '')
答案 1 :(得分:1)
使用
regexp_replace(col, 'notNull(\([^)]+\))', '\1 is not null', 1, 0)
这会查找'notNull',后面紧跟一个左括号,其他字符和右括号。它用包括括号的字符串替换它,但没有'notNull'并且追加'不为空'。
答案 2 :(得分:1)
您可以使用模式:
notNull
- 匹配字符串(
- 启动捕获组\(.+?\)
- 匹配一个左括号,然后是一个或多个字符,但要尽可能少,直到它与结束括号匹配)
- 捕获组的结尾。然后将其替换为\1 is not null
,将\1
替换为第一个捕获组中匹配的值。像这样:
SELECT REGEXP_REPLACE(
your_column,
'notNull(\(.+?\))',
'\1 is not null'
)
FROM your_table
答案 3 :(得分:-1)
使用以下regexp_replace函数:
regexp_replace(regexp_replace(string_name,"notNull",""),"')","') is not null")
我在这里替换了#not; nullNull'非空间,即''然后更换右括号,即')'有一个右括号,一个空格和文本'不是空的'。