根据输入查找字符串的特定部分 - PHP regexp

时间:2017-11-21 15:26:46

标签: php regex preg-replace

我有以下文字:

  [[{"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"}}]]

我想根据fid(19125)选择文本的第一段(括号中的部分)。

这是我现在的正则表达式:

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

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

1 个答案:

答案 0 :(得分:2)

您只需要在您的正则表达式中添加id即可。我稍微更改了正则表达式,以便[^;]*变成[^;]*"fid":"19125"[^;]*。这与在每场比赛中仅包含一个内容大致相当,以确定fid是否等于19125。

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

Demo