2014-03-07 57 views
0

的刮我有一些URL是這樣的:分離文本

http://www.newspaper.pl/abcd/bcda.dll/article?AID=/20140128/XXX/140129527

,並希望文本

20140128/XXX/140129527 

這種刮分開,但只有當URL有這種刮文本

article?AID=/ 

我試過函數「substring」,但我所有的選項wer錯了。更重要的是,有時網址不會這樣結束,但有簽署&等,這樣

http://www.newspaper.pl/abcd/bcda.dll/article?AID=/20140128/XXX/140129527&photo1

,我也想不&photo1

分隔文本的相同刮你有什麼理念?文本'XXX/140129527'的這種刮擦具有不同的長度。我真的無法找到堆棧上的這個問題的解決方案。

回答

0
CREATE TABLE meuk 
     (total varchar 
     , base_url varchar 
     , rest_url varchar 
     ); 
INSERT INTO meuk(total) VALUES 
('http://www.newspaper.pl/abcd/bcda.dll/article?AID=/20140128/XXX/140129527') 
     ; 

你可以使用regexp_replace()

UPDATE meuk 
SET base_url = regexp_replace(total, E'([^?]+)?AID=(.+)', E'\\1') 
     -- , rest_url = regexp_replace(total, E'http://.+\?AID=/(.+)', E'\\1') 
     , rest_url = regexp_replace(total, E'http://.+\?AID=/([^&]+)(.*)$', E'\\1') 
     ; 

SELECT * FROM meuk; 

結果:

CREATE TABLE 
INSERT 0 1 
UPDATE 1 
            total         |     base_url     |  rest_url   
---------------------------------------------------------------------------+------------------------------------------------+------------------------ 
http://www.newspaper.pl/abcd/bcda.dll/article?AID=/20140128/XXX/140129527 | http://www.newspaper.pl/abcd/bcda.dll/article? | 20140128/XXX/140129527 
(1 row) 
+0

http://www.newspaper.pl/abcd/bcda.dll/article?AID=/20140128/ XXX/140129527&photo1以及有關此網址的信息...我也想要相同的解決方案20140128/XXX/140129527 ?? – Blazej

+0

當然謝謝你:) – Blazej