我写了一篇很长的帖子,提供了大量有关我的问题的信息。归根结底,我想在“查找和替换”宏输出中生成一个特定的布局,以便可以轻松将其复制到 Excel 中。我快完成了,但需要一些帮助来解决最后的障碍。
背景
我想租一套房子。为此,我想知道每平方米通常要价多少。我浏览了一个大型房屋广告网站,手动将每处房产的价格和平方米复制到 Excel 中,以计算总价格/平方米,这样我就能了解该市不同地区的价格。
在这样做的时候,我想知道我是否可以将这个过程自动化到安全的时间。所以我开始上网,因为我从来没有做过这样的事情。在此期间我学到了很多东西,到目前为止,自动化这项任务比实际手动执行花费了我更多的时间,哈哈,但我现在不能放弃……!我离成功很近了!
来源
首先,我获取了房屋添加网站的源代码。在下一个摘录中,您将看到一些值:
- 9,950 欧元(此为每月价格)
528 平方米(这是该房产的总面积,在本例中为 528 平方米)
</div><div class="search-result-info search-result-info-price"> <span class="search-result-price">€ 9.950 /mnd</span> <span class="search-result-info-small">Geen kosten huurder</span> </div> <div class="search-result-info"> <ul class="search-result-kenmerken "> <li><span title="Woonoppervlakte">528 m²</span> </li> <li>6 kamers</li> <li>In overleg</li>
现行程序
我将整个源代码复制到 Notepad++ 中,并执行两个“查找和替换”命令。首先是价格,然后是表面(仅供参考:荷兰语中的表面写为 oppervlakte)
查找1
<span class="search-result-price">(.*?)/mnd</span>
替换1
\r\nHITPRICE: $1
查找2
<span title="Woonoppervlakte">(.*?)m²</span>
替换2
\r\nHITOPPERVLAKTE: $1
太棒了!现在我针对值 HITPRICE 和 HITOPPERVLAKTE 执行搜索和标记命令。然后点击搜索 > 书签 > 删除所有未标记的行。结果是一个包含所有价格和表面的漂亮列表,然后我可以将其复制到 excel。
HITOPPERVLAKTE: 135
HITPRICE: € 9.950
HITOPPERVLAKTE: 528
HITPRICE: € 1.560
HITOPPERVLAKTE: 106
HITPRICE: € 1.250
但是,列表每次都会在不同的行上显示价格和表面。我可以使用它,但我更喜欢以下格式,其中表面和价格结合在一起:
HITOPPERVLAKTEPRICE: 106 € 1.250
HITOPPERVLAKTEPRICE: 528 € 1.560
HITOPPERVLAKTEPRICE: 135 € 9.950
因为,这样当复制到 Excel 中时,表面和价格就会立即并排显示在不同的列中。
程序 2
以下是我目前想到的;一个“查找和替换”命令:
寻找
(<span title="Woonoppervlakte">(.*?) m²</span>)|(<span class="search-result-price">(.*?)/mnd</span>)
代替
(\r\nHITOPPERVLAKTEPRIJS: $2\t$4)
这给出了以下结果:
HITOPPERVLAKTEPRIJS: € 2.200
HITOPPERVLAKTEPRIJS: 135
HITOPPERVLAKTEPRIJS: € 9.950
HITOPPERVLAKTEPRIJS: 528
HITOPPERVLAKTEPRIJS: € 1.560
HITOPPERVLAKTEPRIJS: 106
HITOPPERVLAKTEPRIJS: € 1.250
所以我快到了,但出口将表面和价格分开在不同的线上。这在 excel 中很容易解决(只需将所有表面向上移动一行),但我想知道是否有可能整理我的微型自动化过程的最后方面 :-)
问题
如何修改我的“查找和替换”命令来创建一个输出布局,其中表面和价格组合在一行上,并由制表符分隔(因此一旦复制 Excel,它们就会产生不同的列)?
答案1
您的输入:
HITOPPERVLAKTE: 135
HITPRICE: € 9.950
HITOPPERVLAKTE: 528
HITPRICE: € 1.560
HITOPPERVLAKTE: 106
HITPRICE: € 1.250
查找/替换:
- 找什么:
\r\nHITPRICE
- 用。。。来代替:
\tHITPRICE
- 搜索模式:延长
结果:
HITOPPERVLAKTE: 135 HITPRICE: € 9.950
HITOPPERVLAKTE: 528 HITPRICE: € 1.560
HITOPPERVLAKTE: 106 HITPRICE: € 1.250
如果你想把数字分成几列,
- 查找内容:(
:•
此处•
代表空格) - 用。。。来代替:
\t
- 搜索模式:延长
然后你可以使用文本分列在 Excel 中数据菜单从这些列中创建数字,以便您可以对它们进行计算,例如€/m²。