我尝试从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或模块。
答案 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