Php 句子中的特定链接 $input_lines='this photos{img='3512.jpg',alt='Title'}和{img='3513.jpg',alt='Title2'}必须替换此处与图像相关的任何图像代码'; echo preg_replace(“/({\w+/”,”,$input_行);

Php 句子中的特定链接 $input_lines='this photos{img='3512.jpg',alt='Title'}和{img='3513.jpg',alt='Title2'}必须替换此处与图像相关的任何图像代码'; echo preg_replace(“/({\w+/”,”,$input_行);,php,regex,preg-replace,Php,Regex,Preg Replace,正则表达式代码: /({\w+/ 图像链接: 句子中的{img='3512.jpg',alt='Title'}和{img='3513.jpg',alt='Title2'} 转换: 此照片和此处与图像相关的任何图像代码都必须替换。 我得到了句子中的图像链接,但是正则表达式代码有什么问题吗?您的({\w+模式只匹配并捕获到第1组a{和打开大括号后的一个或多个单词字符。在您的替换模式中,有$1和$2替换反向引用无法“工作”因为你只有一个捕获组 你可以用 $input_lines = 'this pho

正则表达式代码:

/({\w+/

图像链接:

句子中的
{img='3512.jpg',alt='Title'}
{img='3513.jpg',alt='Title2'}

转换:

此照片
此处与图像相关的任何图像代码都必须替换。

我得到了句子中的图像链接,但是正则表达式代码有什么问题吗?

您的
({\w+
模式只匹配并捕获到第1组a
{
和打开大括号后的一个或多个单词字符。在您的替换模式中,有
$1
$2
替换反向引用无法“工作”因为你只有一个捕获组

你可以用

$input_lines = 'this photos {img='3512.jpg', alt='Title'} and {#img='3513.jpg', alt='Title2'} any image code here related to image must be replaced.';
echo preg_replace("/({\w+)/", "<img src='https://imgs.domain.com/images/$1' alt='$2'/>", $input_lines);
$re=“/{}\w+=”([^']*)”\s*,\s*\w+=”([^']*)”}/”;
$str=“此照片{#img='3512.jpg',alt='Title'}和{#img='3513.jpg',alt='Title2'}必须替换此处与图像相关的任何图像代码。”;
$subst=“”;
echo preg_替换($re、$subst、$str);
请参阅,输出

必须替换此照片以及此处与图像相关的任何图像代码。

详细信息

  • {#
    -子字符串
    {#
  • \w+
    -1个或多个字母、数字或/和
    \u
  • ='
    -a
    ='
    文字子字符串
  • ([^']*)
    -第1组:除
  • '
    -a
    '
  • \s*,\s*
    -用0+空格括起来的逗号
  • \w+=
    -1个或多个字母、数字或/和
    \u
    和一个
    ='
  • '
    -a
    '
  • ([^']*)
    -第2组:除
  • }
    -一个
    '}
    字符串

模式中只有1个捕获组。请参阅@ WKTROSTRIBI。我想你给出了自己的损坏,但是同时你也回答了。谢谢你的回答。如果你愿意,我们可以写下答案。我想正确地标记你的答案。如果它是有用的,请考虑一下也要回答这个问题。
$re = "/{#\w+='([^']*)'\s*,\s*\w+='([^']*)'}/";
$str = "this photos {#img='3512.jpg', alt='Title'} and {#img='3513.jpg', alt='Title2'} any image code here related to image must be replaced.";
$subst = "<img src='https://imgs.domain.com/images/\$1' alt='\$2'/>";
echo preg_replace($re, $subst, $str);