如果存在单词,则匹配,但仅当它与文本文件中的其他单词不匹配时才匹配

我想知道如何为以下问题使用Python创建RegEx:


我有一个带有数据的文本文件,正则表达式仅在以下情况下才匹配:


它具有正确的ID

并且在文本文件内不包含特定的value2或value3(可以在任何地方出现)

文本文件:


blabla

ID

blabla

...

blabla

value1

blabla

...

blabla

value2

blabla

...


(?<!\n)(\n.*(ID)(?!\n.*(value2|value3).*)

有效,但仅当value2或value3在行ID之前或之后的行上。


那么,如何查找行ID之前和之后的任何行?该解决方案应该适合单行代码,例如我上面的尝试。


明月笑刀无情
浏览 153回答 2
2回答

函数式编程

我相信^(?![\s\S]*(value2|value3))[\s\S]*(ID)[\s\S]*应该为您想要做的工作。有关正则表达式操作的Python文档包括有关的详细信息\s,该信息与空白字符\S匹配,而与则与非空白字符匹配。(?!...)在此Stack Overflow帖子中,有很多关于负前瞻的信息-开头的内容:正则表达式前瞻,后向和原子组

繁花如伊

请勿更改标题,因为它会误导您,“从文本文件中检索ID&nbsp;”。可能的重复&nbsp;Python-在txt.file中搜索ID,然后从下面的行返回变量编写记录时,您的文本文件应具有标准的结构或格式。@Blender在将字典写到txt文件并读回&nbsp;或使用字典格式中的解释可以帮助简化下次读取文件时识别id和值的过程。格式正确的文本文件,使用循环然后读取每一行,然后执行split和into dict。注意:想写评论,但信誉不够
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python