Notepad++正则表达式

3

我将用Python重新加工一个文本文件,但在此之前我需要一个字典,我想使用notepad++中的替换功能来创建它。

我的文本文件如下:

Item 1.
Text Text
Text 

Item 2.
Text

[...]

Item 1005.
Text

Text
Text
Item 1006. Text

我希望您能提供以下内容:

"Item 1":"TextTextText","Item 2":"Text", 

等等等等

我考虑过:

将\r\n替换为空格

替换:Item (.+).(.+)[NOT Item] => "\1":"\2",

但我不确定如何命令让它在第二次找到单词“Item”时停止,而不包括它。

这是我第一次。你介意帮我吗?

提前致谢

1个回答

2
你可以通过两个步骤来完成此操作。
第一步:像你所做的那样,用空字符串替换\s+
第二步:
(Item\.?)(\d+)\.?(.*?)(?=Item\.?\d+|\Z)

"$1 $2":"$3",

.*? 是一种惰性匹配,它会尽可能地匹配最少的字符,但是前瞻断言 (?=Item\d+\.|\Z) 强制它要么一直匹配到另一个 Item\d+\.,要么匹配到字符串的结尾(\Z)。


非常感谢,这很有帮助。但是如果我有以下内容: 项目. 1005 文本文本 文本 [=项目(点)编号(文本)] 我想要“项目. 1005”:“文本文本文本”,怎么办?提前致谢。 - Fregior
@Fregior,您可以根据自己的需求调整正则表达式。我已经编辑了我的答案,但您可能需要进一步更改以适应您的需求。 - Lucas Trzesniewski

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接