Notepad++ 在 HTML 文件中查找并替换多行

Notepad++ 在 HTML 文件中查找并替换多行

我写了一篇很长的帖子,提供了大量有关我的问题的信息。归根结底,我想在“查找和替换”宏输出中生成一个特定的布局,以便可以轻松将其复制到 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&#178;</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&#178;</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&#178;</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²。

相关内容