|
在表格中如何使用正则表达式公式RegexString()从网页源码中提取需要字符,本案例中,演示了如何从某汇率网页中提取币种代码和币种名称。
第一步,需求说明。如下图所示,在某汇率网页上有一个币种下拉框,要求将其中的币种代码和币种名称单独提取出来。
第二步,最终提取出来的数据要求如下图所示,是一个币种的列表。
第三步,查找币种下拉框源代码,在浏览器中,选择币种下拉框,右键,弹出右键菜单,从中选择检查菜单。
第四步,分析规律,发现币种代码和币种名称的规律是value="币种代码">币种名称”,这种情况下,比较容易写正则表达式。
第五步,复制币种下拉框的网页源码。选中下拉框select的网页元素节点,右键,在弹出的右键菜单中选中Copy, Copy outerHTML。
第六步,将复制的网页源码粘贴到某个单元格中。
第七步,如下图所示,书写公式=RegexString($H$2,"value=\""([A-Z]+)\"">([\u4e00-\u9fa5]{1,})",1,G3)从单元格H2中查找币种代码。
第八步,如下图所示,书写公式=RegexString($H$2,"value=\""[A-Z]+\"">([\u4e00-\u9fa5]{1,})",1,G3)从单元格H2中查找币种名称。
要点说明
1、正则表达式([A-Z]+)表示匹配一个以上的大写字母,这里用来匹配币种代码,其中括号()表示要返回的结果,括号外的数据不返回;
2、正则表达式[\u4e00-\u9fa5]{1,}表示匹配一个以上的汉字,这里用来匹配币种名称;
3、在公式中,双引号有特殊用途,如果要输入一个普通的双引号,可以输入两个双引号,此时表示一个双引号;
4、$H$2,表示绝对引用,这样往下拖动公式时,引用的还是单元格H2;
5、图中G列是辅助列,用来递增序号,以便获得要返回值的索引。
|
|