正则表达式得到第二个单词

时间:2014-06-28 06:08:28

标签: regex oracle

SELECT '5-CULVERTS AND UNDERPASSES' FROM DUAL;

尝试将查询字符串的5-CULVERTS AND提升到第二个字

尝试这个

select regexp_substr('5-CULVERTS AND UNDERPASSES','[^ ]{2}+') from dual

但没有帮助..

3 个答案:

答案 0 :(得分:2)

要匹配前两个单词,您可以执行以下操作:

SELECT REGEXP_SUBSTR(mycolumn, '\S+\s+\S+', 1, 1, 'cm') FROM dual;

<强>解释

  • \S+匹配任何非空格字符(第一个单词)
  • \s+匹配任何空间字符
  • \S+匹配第二个字

选项2:第二个字是可选的

使用此:

SELECT REGEXP_SUBSTR('6-BRIDGES', '\S+(\s+\S+)?', 1, 1) FROM dual;

空格和第二个单词现在在括号中,并由?

选择

答案 1 :(得分:0)

您可以按照以下方式执行此操作:

[^\s]+\s[^\s]+

DEMO

select regexp_substr('5-CULVERTS AND UNDERPASSES','[^\s]+\s[^\s]+') from dual

答案 2 :(得分:0)

你可以这样做

  

SQL&GT;选择regexp_substr(&#39; 5-CULVERTS AND   来自&#39;,&#39; \ S +(\ s + \ S +)?&#39;,1,1)来自双重;

输出

5-CULVERTS AND