我有一个包含类似以下结构的数据的文件:
{
"HRP1001_ObjectType": "S",
"HRP1001_ObjectID": 20000499,
"HRP1001_BeginDate": "01.01.2017",
"HRP1001_EndDate": "",
"HRP1001_SubType": "B007",
"HRP1001_TypeOfRelatedObject": "C",
"HRP1001_IDOfRelatedObject": 30000018
},
{
"HRP1001_ObjectType": "S",
"HRP1001_ObjectID": 20000500,
"HRP1001_BeginDate": "01.01.2017",
"HRP1001_EndDate": "",
"HRP1001_SubType": "A003",
"HRP1001_TypeOfRelatedObject": "O",
"HRP1001_IDOfRelatedObject": 10000097
},
{
"HRP1001_ObjectType": "S",
"HRP1001_ObjectID": 20000500,
"HRP1001_BeginDate": "01.01.2017",
"HRP1001_EndDate": "",
"HRP1001_SubType": "A012",
"HRP1001_TypeOfRelatedObject": "O",
"HRP1001_IDOfRelatedObject": 10000097
},
所以我需要找到所有实体(一个实体是卷曲括号之间的数据),其中ObjectID具有特定值或 IDOfRelatedObject具有特定值。
让我们说我正在寻找的价值是:10000097。我目前通过运行以下两个表达式实现这一点,就像一个白痴:
\{\s.*\n.*: .*\n.*\n.*\n.*\n.*\n.*10000097\n.*\}
\{\s.*\n.*: 10000097.*\n.*\n.*\n.*\n.*\n.*\n.*\}
无论如何要么在一个表达式中对上面看到的表达式说OR,要么创建一个更聪明的表达式来做同样的事情?
我正在使用sublime text 3 btw,如果正则表达式引擎很重要..我猜它使用python,不确定..
答案 0 :(得分:1)
答案 1 :(得分:0)
你可以用这个:
{\n\s{8}\"\w+\": \"(\w+)\"\,\n\s{8}\"\w+\": \d{1,}\,\n\s{8}\"\w+\": \"\w+\.\w+.\w+\"\,\n\s{8}\"\w+\": \"\"\,\n\s{8}\"\w+\": \"\w+\"\,\n\s{8}\"\w+\": \"\w+\"\,\n\s{8}\"HRP1001_IDOfRelatedObject\": 10000097\n\s{4}\}\,