仅使用正则表达式提取json值

我有一个嵌入在json中的描述字段,并且无法使用json库解析此数据。

{0,23}为了顺序尝试提取字符串的前23个字符,如何提取与说明相关的整个值?

   import re

description = "'\description\" : \"this is a tesdt \n another test\" "

re.findall(r'description(?:\w+){0,23}', description, re.IGNORECASE)

对于上述代码,仅['description']显示

回答:

您可以尝试以下代码:

import re

description = "description\" : \"this is a tesdt \n another test\" "

result = re.findall(r'(?<=description")(?:\s*\:\s*)(".{0,23}?(?=")")', description, re.IGNORECASE+re.DOTALL)[0]

print(result)

得到的结果如下:

"this is a tesdt 

another test"

本质上是:

\"this is a tesdt \n another test\"

这就是您在评论中要求的。


说明-

(?<=description")表示正则表达式后面是正向表达式,表示正则表达式与前面的文本匹配。description"

(?:\s*\:\s*)是一个非捕获组,表示正则表达式description"后面将是零个或多个空格,冒号(:)和零个或多个空格。

(".{0,23}?(?=")")是所需的实际匹配项,由双引号("),零至二十三个字符和最后的双引号(")组成。

以上是 仅使用正则表达式提取json值 的全部内容, 来源链接: utcz.com/qa/417553.html

回到顶部