Regex 获取第二个单词的正则表达式
在 尝试使用查询字符串获取第二个单词的Regex 获取第二个单词的正则表达式,regex,oracle,Regex,Oracle,在 尝试使用查询字符串获取第二个单词的5个字符和 试试这个 SELECT '5-CULVERTS AND UNDERPASSES' FROM DUAL; 但是没有帮助。您可以按如下方式执行: select regexp_substr('5-CULVERTS AND UNDERPASSES','[^ ]{2}+') from dual 要匹配前两个单词,可以执行以下操作: select regexp_substr('5-CULVERTS AND UNDERPASSES','[^\s]+\s[
5个字符和
试试这个
SELECT '5-CULVERTS AND UNDERPASSES' FROM DUAL;
但是没有帮助。您可以按如下方式执行:
select regexp_substr('5-CULVERTS AND UNDERPASSES','[^ ]{2}+') from dual
要匹配前两个单词,可以执行以下操作:
select regexp_substr('5-CULVERTS AND UNDERPASSES','[^\s]+\s[^\s]+') from dual
解释
匹配任何非空格字符的字符(第一个单词)\S+
匹配任何空格字符\s+
匹配第二个单词\S+
SELECT REGEXP_SUBSTR(mycolumn, '\S+\s+\S+', 1, 1, 'cm') FROM dual;
空格和第二个单词现在放在括号中,并通过?
可以用这种方式进行选择
SQL>选择regexp_substr('5-1
地下通道“,”\S+(\S+\S+)?”,1,1)来自双通道
发出
5-涵洞和哦,对了。我忘记了
\S
而不是[^\S]
。但是我不会改变我的答案,因为你已经做了\S
+1至you@sshashank124谢谢,答案几乎相同,下次我会照顾你的。:)谢谢Nisar,很高兴它有帮助!:)<代码>从dual中选择REGEXP_SUBSTR('6-BRIDGES','\S+\S+',1,1)是的,你说你想要两个字。如果需要一两个单词,请使用以下命令:从dual中选择REGEXP_SUBSTR('6-BRIDGES','\S+(\S+\S+)',1,1)代码>将更新答案。:)
SELECT REGEXP_SUBSTR(mycolumn, '\S+\s+\S+', 1, 1, 'cm') FROM dual;
SELECT REGEXP_SUBSTR('6-BRIDGES', '\S+(\s+\S+)?', 1, 1) FROM dual;