繁体   English   中英

需要通过使用sql中的regexp来解析最多3rd /一个字符串

[英]need to parse up to 3rd / in a string by using regexp in sql

当我尝试使用\\|(.*?),1,2从下面的源中通过正则regexp提取内容时\\|(.*?),1,2这已经结束了,但是我只需要3rd /。 当我使用\\|(.*/){1,3},1,2它给出的是http://localhost:6148372/content/bdsajf并且我停留在结束搜索位置。 请帮助我。

U=https://www.abcdf.com/aecb/app/login|http://llcwokhfkdvc.webs.com/sajc-services
U=http://localhost:7438/en.html|http://localhost:6148372/content/bdsajf/en/kjf-LKJf/FJKSF-cbxjs.html

O / P应该是# http://llcwokhfkdvc.webs.comhttp://localhost:6148372

谢谢

尝试以下表达式:

\|([^/]*/*[^/]*)

观看现场演示

尝试'\\|([^/]*/){1,3}' (11i):

SQL> SELECT regexp_substr(txt, '\|(([^/]*/){1,3})', 1, 1, 'i', '1') regexp
  2    FROM DATA;

REGEXP
--------------------------------------------------------------------------------
http://llcwokhfkdvc.webs.com/
http://localhost:6148372/

在10克中:

SQL> SELECT ltrim(regexp_substr(txt, '\|([^/]*/){1,3}'), '|') regexp
  2    FROM DATA;

REGEXP
--------------------------------------------------------------------------------
http://llcwokhfkdvc.webs.com/
http://localhost:6148372/

你可以试试:

SELECT regexp_substr(t, '\|(http://.*?)/', 1, 1, NULL, 1)
  FROM (
    SELECT
      'U=https://www.abcdf.com/aecb/app/login|http://llcwokhfkdvc.webs.com/sajc-services' AS t
    FROM DUAL
    UNION
    SELECT
      'U=http://localhost:7438/en.html|http://localhost:6148372/content/bdsajf/en/kjf-LKJf/FJKSF-cbxjs.htmlO/P should be # http://llcwokhfkdvc.webs.com and http://localhost:6148372' AS t
    FROM DUAL
);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM