首先,不知道这是否可以通过正则表达式完成。
我有一个像这样的Json:
{"transfId":"S0722182156164591494745777M","messageId":"123","from":"5777","to":"59395436474","status":-1,"checkId":"1975","price":0,"keyword":"OK","errorCode":601,"errorMessage":"SUCCESS","date":"20150730 09:00:00","model":"wer_tr"}
在包含6000行的文件中,并且只需更改“checkId”值,但仅限于在其他字段中具有特定值的情况。 更清楚:只想在“关键字”时更改“checkId”值:“确定”和“从”:“5777”
我找到了如何找到它:\b5777\b.*?\bOK
如何更换?
提前谢谢。
答案 0 :(得分:0)
您可以使用以下内容获取值:
\{.+\"from\":\"(\d+)\".+\"checkId\":\"(\d+)\".+\"keyword\":\"([a-zA-Z]+)\".+\}
这是一个相当简单的正则表达式,所以应该使用多种语言。
然后使用if statment,查找是否应更改checkId
并更改它。
您还可以修改捕获组并使用替换:
(\{.+\"from\":\"(\d+)\".+\"checkId\":\")(\d+)(\".+\"keyword\":\"([a-zA-Z]+)\".+\})
答案 1 :(得分:0)
您可以使用这样的正则表达式:
({(?:(?!}).)*"from": "5777".*?"checkId": ")[^"]*(".*?"keyword": "OK")
它只在打开的大括号和下一个结束大括号之间进行搜索。它要在要替换的部件的两侧有两个捕获组。您可以用以下字符串替换它:
$1<your_new_checkId_here>$2