仅使用正则表达式提取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 redescription = "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