我想知道如何为以下问题使用Python创建RegEx:我有一个带有数据的文本文件,正则表达式仅在以下情况下才匹配:它具有正确的ID并且在文本文件内不包含特定的value2或value3(可以在任何地方出现)文本文件:blablaIDblabla...blablavalue1blabla...blablavalue2blabla...这(?<!\n)(\n.*(ID)(?!\n.*(value2|value3).*)有效,但仅当value2或value3在行ID之前或之后的行上。那么,如何查找行ID之前和之后的任何行?该解决方案应该适合单行代码,例如我上面的尝试。
2 回答

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

繁花如伊
TA贡献2012条经验 获得超12个赞
请勿更改标题,因为它会误导您,“从文本文件中检索ID ”。
可能的重复 Python-在txt.file中搜索ID,然后从下面的行返回变量
编写记录时,您的文本文件应具有标准的结构或格式。@Blender在将字典写到txt文件并读回 或使用字典格式中的解释可以帮助简化下次读取文件时识别id和值的过程。
格式正确的文本文件,使用循环然后读取每一行,然后执行split和into dict。
注意:想写评论,但信誉不够
添加回答
举报
0/150
提交
取消