我有一个长字符串,我想要解析并从特定位置捕获一个特定值。字符串看起来像这样(粗体的具体值):
{姓名:dave,TaskTime:1503485101000,日志:5 12345678 test-12345 1.1.1.1 2.2.3.3 111 22222 1 11 3456 1503485101 1503485102 TEST CORRECT ,InTime:1503485105278,Id:123456789}
主要问题是,我需要找到一个正则表达式模式来捕获组中的值。是否有任何RegEX模式可以使用单个正则表达式提取该值?
有人可以提供任何建议吗?我通过堆栈搜索尝试了几种不同的方法。我只是设法使用此匹配某些字段:(?:|[=\s])(\w{1,})(?=\s|$)
但这还不够。
答案 0 :(得分:1)
你可以试试这个正则表达式:
(?<=(?:(?:\d{1,3}\.){3}\d{1,3}\s){2}(?:\d+\s){3})
说明:
>>1.1.1.1 2.2.3.3 111 22222 1 <<
正面看是否正面,旨在找到2个连续的ip地址,然后是3个数字:
_id:5a0f6c61d1154f2f9983ad74
name:"colla"
weight:"2"
status:"+"
time_exp:2017-11-18 00:37:31.946
_id:5a0f6c61d1154f2f9983ad74
name:"pepsi"
weight:"3"
status:"+"
time_exp:2017-11-18 00:37:31.946
_id:5a0f6c61d1154f2f9983ad74
name:"colla"
weight:"3"
status:"+"
time_exp:2017-11-18 00:37:31.946
如果找到此类模式,则会捕获以下数字。在我们的例子中它是11