Goog正在使用regexp从HTML页面获取PHONE

时间:2017-04-24 03:15:38

标签: html ruby regex web-scraping phone-number

我尝试从HTML页面获取电话,但我尝试了许多正则表达式和模块,但它无法正常工作或出错。 实施例。

struct vertex
{

   double x,y;

    bool operator==(const vertex &o)const {
        return x == o.x && y == o.y;
    }

    bool operator<(const vertex &o) const{
        return x < o.x || (x == o.x && y < o.y);
    }

};
typedef vector<vertex> vertList;
typedef vector <pair<vertex,vertex>> Edge;

你可以在页面上看到很多手机。例如,+ 49(0)211 4560-518。 而且我从Regexp基础找到了很好的正则表达式,Google推荐它。

http://www.boat-duesseldorf.com/cgi-bin/md_boot/lib/pub/tt.cgi/Overview_Press.html?oid=58288&lang=2&ticket=g_u_e_s_t

有很多文字,所以我不会在这里过去。只有正则表达式。 Regexp应该有一小部分手机格式。

http://www.regexlib.com/REDetails.aspx?regexp_id=2054

因此,我与Nokorigi获取HTML页面http://www.boat-duesseldorf.com/cgi-bin/md_boot/lib/pub/tt.cgi/Overview_Press.html?oid=58288&lang=2&ticket=g_u_e_s_t并制作:

^(\+\d{2}[ \-]{0,1}){0,1}(((\({0,1}[ \-]{0,1})0{0,1}\){0,1}[2|3|7|8]{1}\){0,1}[ \-]*(\d{4}[ \-]{0,1}\d{4}))|(1[ \-]{0,1}(300|800|900|902)[ \-]{0,1}((\d{6})|(\d{3}[ \-]{0,1}\d{3})))|(13[ \-]{0,1}([\d \-]{5})|((\({0,1}[ \-]{0,1})0{0,1}\){0,1}4{1}[\d \-]{8,10})))$

/^(\+\d{2}[ \-]{0,1}){0,1}(((\({0,1}[ \-]{0,1})0{0,1}\){0,1}[2|3|7|8]{1}\){0,1}[ \-]*(\d{4}[ \-]{0,1}\d{4}))|(1[ \-]{0,1}(300|800|900|902)[ \-]{0,1}((\d{6})|(\d{3}[ \-]{0,1}\d{3})))|(13[ \-]{0,1}([\d \-]{5})|((\({0,1}[ \-]{0,1})0{0,1}\){0,1}4{1}[\d \-]{8,10})))$/.match.(@html) - 但是获得NIL !!!!

我需要良好的正则表达式,请推荐100%正常工作的regexp或模块。

1 个答案:

答案 0 :(得分:1)

我不熟悉Ruby,但希望它有所帮助:

keys = json_element.keys
keys.each do |k|
        set_key = k.downcase
        instance_variable_set("@" + set_key, json_element[k]['$']) unless json_element[k].nil?
      end 

输出:

@code