在MATLAB的单元格字符串中,我有一个如下所示的字符串:
A = {'... "precision": 0.01254,"recall": 0.2154, ... ,"precision": 0.01324,"recall": 0.25454 ... '}
其中......暗示不同的词。我想解析这个文本,并阅读“精确”和“召回”字样前面的所有数字。我考虑过为此目的使用regexp()
。知道如何正确使用它吗?
谢谢
答案 0 :(得分:1)
要从该长字符串中提取"precision": 0.01254
和"recall":0.2154
,我会使用类似的内容。
正则表达式: ("precision":|"recall":)(?:\s+)?(?:\d*\.\d*)
使用的标志:
g
进行全球搜索。<强>解释强>
("precision":|"recall":)
:此部分会搜索precision
或 recall
。
(?:\s+)?(?:\d*\.\d*)
:此部分代表numerical data
。
的 Regex101 demo here. 强>
编辑#1:
正如OP在一篇评论中提到的那样,有时数字的格式为2.8621e-6
,我们只需捕获e-6
部分并使其成为可选项。结果正则表达式如下。
正则表达式: ("precision":|"recall":)(?:\s+)?(?:\d*\.\d*(?:e-\d*)?)