【问题标题】:Find term with asterisk *查找带星号的术语 *
【发布时间】:2020-11-12 12:28:43
【问题描述】:

我有一个带有 html 的 字符串:

$html = '...hello{"text":"52"},{"text":" watching"}world...';

我想在$html 中搜索:

{"text":"*"},{"text":" watching"}

所以我可以得到号码(星号在哪里)?在我的示例中,它是52,但它可以是任何数字。

我应该最终得到$number 等于52。正则表达式是否合适?

【问题讨论】:

  • 您的 $html 变量是否可能实际上包含 JSON 而不是 HTML?
  • 不,它是带有一些随机 JSON 代码的 HTML。
  • 问题:正则表达式是否合适?答:是的??????
  • 所以你基本上需要从 HTML 中获取 <script> 标签并从 JavaScript 代码中解析对象。 YouTube 没有 API 和东西吗?
  • 完全没有上下文我可以建议像"text":"(\d+)" (demo)。根据季节和月相,它会工作或失败。

标签: php regex string


【解决方案1】:

你可以试试(?<=\{"text":")(\d+)(?="\},\{"text":" watching"\})

与:

  • (?<=\{"text":"):你正在寻找的正向回溯(属于{"text":"
  • (\d+):你需要的数字(属于*
  • (?="\},\{"text":" watching"\}):你正在寻找的正向前瞻(属于"},{"text":" watching"}

https://regex101.com/r/5eqI2e/1

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多