gpt4 book ai didi

regex - 从文本中提取 JSON 字符串的正则表达式

转载 作者:行者123 更新时间:2023-12-04 14:28:29 35 4
gpt4 key购买 nike

我正在寻找正则表达式来从文本中提取 json 字符串。
我有下面的文字,其中包含

JSON string(mTitle, mPoster, mYear, mDate)

像那样:
{"999999999":"138138138","020202020202":{"846":{"mTitle":"\u0430","mPoster":{"
small":"\/upload\/ms\/b_248.jpg","middle":"600.jpg","big":"400.jpg"},"mYear"
:"2013","mDate":"2014-01-01"},"847":{"mTitle":"\u043a","mPoster":"small":"\/upload\/ms\/241.jpg","middle":"600.jpg","big":"
138.jpg"},"mYear":"2013","mDate":"2013-12-26"},"848":{"mTitle":"\u041f","mPoster":{"small":"\/upload\/movies\/2
40.jpg","middle":"138.jpg","big":"131.jpg"},"mYear":"2013","mDate":"2013-12-19"}}}

为了解析 JSON 字符串,我应该从文本中提取 JSON 字符串。
这就是为什么,我的问题:你能帮我只获取 JSON 字符串吗?
从文字?请帮忙。

我试过这个正则表达式但没有成功:
{"mTitle":(\w|\W)*"mDate":(\w|\W)*}

最佳答案

以下正则表达式应该有效:

\{\s*"mTitle"\s*:\s*(.+?)\s*,\s*"mPoster":\s*(.+?)\s*,\s*"mYear"\s*:\s*(.+?)\s*,\s*"mDate"\s*:\s*(.+?)\s*\}

Check demo here.

与您的正则表达式的主要区别在于 .+?部分,分解,意味着:
  • 匹配任何字符 ( . )
  • 一次或多次 ( + )
  • 尽可能少 ( ? )
  • ? + 之后的运算符在这里非常重要 --- 因为如果你删除它,第一个 .+ (在 \{\s*"mTitle"\s*:\s*(.+?) 中)将匹配整个文本, 不是 文达 "mPoster"一句话,这就是你想要的。

    请注意,它只是 \{"mTitle":(.+?),"mPoster":(.+?),"mYear":(.+?),"mDate":(.+?)\} 的更复杂版本。 (使用 \s* 匹配空格,JSON 表示法允许)。

    关于regex - 从文本中提取 JSON 字符串的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20916699/

    35 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com