如何使用正则表达式从 json 有效负载中获取所需的格式文本输出
"number" : 4aac4c35-8e3e-4730-8364-381884d6f20f:OP:QUAL:117804471:PON:false
得到如下输出的表达式是什么
"number" : 117804471
能否请你帮忙。
我尝试了以下方法;但它没有用;我是新手。
([\"]token[\"][\s]*:[\s]*)?([0-9]{9})
是的,正如@PJProudhon 所说,我们缺乏帮助您的精确度。
如果您只想提取数字而不使用某些捕获组,则可以使用以下正则表达式:(?<=:)\d+(?=:\w+:(?:true|false))
快速解释:
(?<=:)
是寻找:
字符的积极回溯。\d+
就是得到一个至少1位小数或更多的数字。(?=:\w+:(?:true|false))
是查找 a :
、单词、a:
然后
true
或的正向前瞻false
。这里有多个值的小测试:https ://regex101.com/r/1nRnct/2
希望这可以帮到你。
仍然不太确定您究竟想要或需要什么,但让我们根据您在此处和示例中编写的内容进行尝试。
收到一些关于以下内容的字符串:
尝试仅通过以下方式替换该输入:
然后,您可以使用以下模式来获取匹配项:^(?<token>"[^"]+"\s*:\s*)(?:\d*[^\d:][^:]*:)*(?<number>\d+)(?::[^:]*)*$
.
然后应使用以下内容替换:$1$2
。
演示在这里。
当了解其他规则时,这可能会被简化或调整。