我使用PIG生成最近訪問過的URL列表。在每個網址中,都有一串數字代表所訪問的產品頁面。我試圖用一個regex_extract_all()
函數來提取數字的字符串,其長度從6-8變化。數字串可以在jobs2/view/
之後直接找到,通常以+&cd
結尾,但有時它們可能以)
結尾。使用正則表達式從URL中提取數字字符串PIG
這裏有幾個示例網址:
(http://a.com/search?q=cache:QD7vZRHkPQoJ:ca.xyz.com/jobs2/view/17069404+&cd=1&hl=en&ct=clnk&gl=ca) (http://a.com/search?q=cache:G9323j2oNbAJ:ca.xyz.com/jobs2/view/5977065+&cd=1&hl=en&ct=clnk&gl=ca) (http://a.com/search?q=cache:aNspmG11qAJ:hk.xyz.com/jobs2/view/16988928+&cd=2&hl=zh-TW&ct=clnk&gl=hk) (http://a.com/search?q=cache:aNspmG11AJ:hk.xyz.com/jobs2/view/16988928+&cd=2&hl=zh-TW&ct=clnk&gl=hk) (http://a.com/search?q=cache:aNspmG11qAJ:hk.xyz.com/jobs2/view/16988928+&cd=2&hl=zh-TW&ct=clķ& GL = HK)
這裏是當前正則表達式我使用:
J = FOREACH jpage GENERATE FLATTEN(REGEX_EXTRACT_ALL(TEXTCOLUMN, '\/view\/(\d+)\+\&')) as (output:chararray)
我也試過o療法形式如:
'[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]'
,'view.([0-9]+)'
,'view\/([\d]+)\+'
,
'[0-9][0-9][0-9]+'
,和 '[0-9][0-9][0-9]*'
;沒有一個工作。
任何人都可以在這裏協助或有其他方式去解決嗎?
大加讚賞, MM
ERROR 1200:<第1行7,第68列>意外字符'D' – user3521607 2014-09-19 22:06:29