我想在查询中使用REGEXP_INSTR函数来搜索用户输入的任何匹配,但我不知道如何编写正则表达式,例如将匹配包含单词car后跟未指定数字的任何值字母/数字/空格然后是帕特森这个词。任何人都可以帮我写这个regEx吗?
答案 0 :(得分:0)
好的,让我们打破这个。
"包含单词car"
的任何值我猜测汽车这个词并不需要在字符串的开头,所以我会用...开始格式字符串。
'^.*'
这里' ^'字符表示字符串的开头,'。'是指任何角色和' *'表示前面字符的0或更多。所以在字符串开头之后任何字符都是零或更多。
然后单词' car',所以......
'^.*car'
接下来......
"其次是未指定数量的字母/数字/空格"
我猜测未指明意味着零或更多。这非常类似于我们所做的识别可能出现在汽车之前的任何角色。在哪里'。'意味着任何角色
'^.*car.*'
但是,如果未指定意味着一个或多个,那么您可以使用' +'取代' *'
"然后是Paterson这个词"
我将假设因为这是描述的结尾,所以在“帕特森”之后不再有人物。
'^.*car.*Paterson$'
' $'符号表示' n' '帕特森'必须在字符串的末尾。
代码示例:
select
REGEXP_INSTR('123456car1234ABCDPaterson', '^.*car.*Paterson$') as rgx
from dual
输出
RGX
----------
1