如何编写正则匹配含Pat的键并提取其冒号后对应的字段值
方案1:通用捕获组方案(兼容所有正则引擎)
正则表达式如下:
(?i)"[^"]*Pat\b[^"]*":([^,}]+)
匹配逻辑说明:
- 保留了你原有
(?i)不区分大小写的匹配规则 "[^"]*Pat\b[^"]*":完整匹配包含Pat的键名(修正了你原有正则末尾漏写*的问题,确保能匹配完整键字符串)::匹配键值之间的冒号分隔符([^,}]+):捕获组1匹配所有非逗号、非右大括号的字符,刚好就是目标键对应的取值,直接提取捕获组1的内容即可得到Complete
方案2:零宽断言直接匹配(支持变长后视的引擎可用,如Python、Java9+、.NET)
如果你的正则引擎支持可变长度后视,可直接匹配到目标值,无需额外提取捕获组:
(?<=(?i)"[^"]*Pat\b[^"]*":)[^,}]+
这个正则执行后直接返回匹配结果Complete。
验证效果
针对你给出的测试文本:
Text = {"key1":value1,"key2":value2,"366-Pat?":Complete}
两种方案均可以准确提取到目标值Complete。
内容的提问来源于stack exchange,提问作者Ronald
相关产品推荐
相关产品推荐

