根据输入查找字符串的特定部分 - PHP 正则表达式

Find specific part of string based on input - PHP regexp

我有以下文字:

  [[{"type":"media","view_mode":"media_original","fid":"19125","attributes":{"alt":"","class":"media-image","height":"480","typeof":"foaf:Image","width":"480"}}]]

Sed iaculis, nisl vel accumsan condimentum, orci felis congue pede, nec pharetra quam ante nec ligula.

  [[{"type":"media","view_mode":"media_original","fid":"16145","attributes":{"alt":"","class":"media-image","height":"480","typeof":"foaf:Image","width":"480"}}]]

我要select正文的第一段(括号内的部分),基于fid(19125)。

这是我当前的正则表达式:

[\[].[^;]*[\]\)]]

但现在它会发现这两种情况。我想对此进行调整,以便它只获得具有正确 fid (19125) 的那个。

您只需将 id 添加到您的正则表达式中。我稍微更改了正则表达式,使 [^;]* 变成 [^;]*"fid":"19125"[^;]*。这大致相当于在每场比赛中做一个 contains 来查看 fid 是否等于 19125.

[\[].[^;]*"fid":"19125"[^;]*[\]\)]]

Demo