我有一个 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
答案1
以下是完成这项工作的方法:
- Ctrl+H
- 找什么:
0\R+(.+)\R(?:(?!CDN)(?!^0$)[\s\S])+(?:\RCDN\$\h+(\d+\.\d+))?(?:\RCDN\$\h+(\d+\.\d+))?\R(?:(?!^0$)[\s\S])+
- 替换为:$1 $2 $3\n
- 查看 相符
- 查看 环绕
- 查看 正则表达式
- 取消选中
. matches newline
- Replace all
截图(之前):
截图(之后):