我有一个 GUI 的文本粘贴,结果形成文本“块”,每一行包含有关特定条目的不同信息。对于我想收集的信息,有3种类型,我不知道如何处理。我认为 TSV 将是一种很好的输出格式。我更希望正则表达式由 Notepad++ 处理,但如果不能适应,我真的更希望正则表达式由免费且易于使用(如果是软件则安装)网站或软件来处理.
有问题的 3 种类型是有底价的,也有回扣的价格,根本没有价格,对于所有 3 种,应该包括“块”第一行;以下包含每个的输入和所需的输出。到目前为止,这是我为具有基本价格和回扣价格的类型所做的:\R0\R\R(\w.*)\R(?:\w.*\R){4}[\w-].*\R.*CDN\$\s(\d+\.\d{2})\RCDN\$\s(\d+\.\d{2})\R(?:\w.*\R){3}
。
我不得不使用代码块,即使下面的代码不是块引用成束的行。
感谢您的帮助
输入
0
South Park™: The Stick of Truth™
OVERALL REVIEWS:
OVERWHELMINGLY POSITIVE
RELEASE DATE:
3 MAR, 2014
-75%
CDN$ 39.99
CDN$ 9.99
Add to Cart
RPGComedyAdventureFunnyTurn-Based
Added on 8/9/2020 ( remove )
输出
South Park™: The Stick of Truth™ 39.99 9.99
输入
0
Grand Theft Auto V
OVERALL REVIEWS:
VERY POSITIVE
RELEASE DATE:
13 APR, 2015
View Details
Open WorldActionMultiplayerAutomobile SimCrime
Added on 1/15/2020 ( remove )
输出
Grand Theft Auto V
输入
0
System Shock
OVERALL REVIEWS:
NO USER REVIEWS
RELEASE DATE:
SUMMER 2021
CDN$ 51.49
Add to Cart
ActionAdventureCyberpunkSci-fiImmersive Sim
Added on 6/9/2020 ( remove )
输出
System Shock 51.49
这是完成这项工作的一种方法:
0\R+(.+)\R(?:(?!CDN)(?!^0$)[\s\S])+(?:\RCDN\$\h+(\d+\.\d+))?(?:\RCDN\$\h+(\d+\.\d+))?\R(?:(?!^0$)[\s\S])+
. matches newline
演示和解释
截图(之前):
截图(之后):