Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP将Span类放入括号regex中_Php_Regex_Image_Preg Replace_Str Replace - Fatal编程技术网

PHP将Span类放入括号regex中

PHP将Span类放入括号regex中,php,regex,image,preg-replace,str-replace,Php,Regex,Image,Preg Replace,Str Replace,这就是我到目前为止所做的: $phones = "Samsung Galaxy S8~LG G6~iPhone 7 Plus~ Motorola Z2"; $phones = str_replace("Galaxy S", '<span class="galaxy">galaxy</span>', $phones); $value = preg_replace('/(\d+.*?)(~)/', '($1)$2', $phones . "~"); $value =

这就是我到目前为止所做的:

$phones = "Samsung Galaxy S8~LG G6~iPhone 7 Plus~ Motorola Z2";

$phones  = str_replace("Galaxy S", '<span class="galaxy">galaxy</span>', $phones);

$value = preg_replace('/(\d+.*?)(~)/', '($1)$2', $phones . "~");

$value = "<li>". str_replace("~", ",</li><li>", substr($value,0,-1)) . "</li>";

Echo $value;
$phones=“三星Galaxy S8~LG G6~iPhone 7 Plus~Motorola Z2”;
$phones=str_replace(“Galaxy S”、“Galaxy”和$phones);
$value=preg_replace(“/(\d+.*)(~)/”、“($1)$2”、$phones.“~”;
$value=“
  • ”。str_replace(“~”,“,
  • ”,substr($value,0,-1))。“
  • ”; Echo美元价值;
    结果是:

    • 三星galaxy(8)
    • LG G(6)
    • iPhone(7+以上)
    • 摩托罗拉Z(2)
    我想做的是把span类放在括号内,这样它就会:

    • 三星(galaxy8)
    • LG G(6)
    • iPhone(7+以上)
    • 摩托罗拉Z(2)
    谢谢

    代码:()

    $phone='三星Galaxy S8~LG G6~ iPhone 7 Plus~摩托罗拉Z2';
    $match='/Galaxy S(\d+)/';
    $replace='(galaxy$1)';
    echo preg_替换($match,$replace,$phone);
    
    未分配的产出:

    Samsung ( <span class="galaxy">galaxy</span> 8 )~LG G6~iPhone 7 Plus~ Motorola Z2
    
    <ul><li>Samsung ( <span class="galaxy">galaxy</span> 8 ),</li><li>LG G6,</li><li>iPhone 7 Plus,</li><li> Motorola Z2</li></ul>
    
    <ul><li>Samsung (<span class="galaxy">galaxy</span> 8)</li><li>LG G(6)</li><li>iPhone (7 Plus)</li><li>Motorola Z(2)</li></ul>
    
    三星(galaxy 8)~LG G6~ iPhone 7 Plus~摩托罗拉Z2
    

    下面是完整的
    块:

    $phone='Samsung Galaxy S8~LG G6~iPhone 7 Plus~ Motorola Z2';
    $match='/Galaxy S(\d+)/';
    $replace='( <span class="galaxy">galaxy</span> $1 )';
    echo '<ul><li>',str_replace('~',',</li><li>',preg_replace($match,$replace,$phone)),'</li></ul>';
    
    $phone='三星Galaxy S8~LG G6~ iPhone 7 Plus~摩托罗拉Z2';
    $match='/Galaxy S(\d+)/';
    $replace='(galaxy$1)';
    回音“
    • ”,str_replace(“~”,“
    • ”,preg_replace($match,$replace,$phone)),“
      • ”;
    未分配的产出:

    Samsung ( <span class="galaxy">galaxy</span> 8 )~LG G6~iPhone 7 Plus~ Motorola Z2
    
    <ul><li>Samsung ( <span class="galaxy">galaxy</span> 8 ),</li><li>LG G6,</li><li>iPhone 7 Plus,</li><li> Motorola Z2</li></ul>
    
    <ul><li>Samsung (<span class="galaxy">galaxy</span> 8)</li><li>LG G(6)</li><li>iPhone (7 Plus)</li><li>Motorola Z(2)</li></ul>
    
    三星(galaxy 8)、LG G6、iPhone 7 Plus、摩托罗拉Z2

    最终变更:

    $phones="Samsung Galaxy S8~LG G6~iPhone 7 Plus~ Motorola Z2";
    $patterns=[
        '/(?:Galaxy S)?\d[^~]*/', // match (optional Galaxy S), number, optional trailing text
        '/~ ?/',  // match delimiter and optional trailing space (at Motorola)
        '/Galaxy S/'  // literally match Galaxy S
    ];
    $replacements=[
        '($0)',  // wrap full string match in parentheses
        '</li><li>',  // use closing and opening li tags as new delimiter
        '<span class="galaxy">Galaxy</span> '  // tagged text (note: G & space after </span>)
    ];
    $full_list='<ul><li>'.preg_replace($patterns,$replacements,$phones).'</li></ul>';
    echo $full_list;
    
    $phones=“三星Galaxy S8~LG G6~iPhone 7 Plus~Motorola Z2”;
    $patterns=[
    “/(?:Galaxy S)?\d[^~]*/”,//匹配(可选Galaxy S),编号,可选尾随文本
    “//~?/”,//匹配分隔符和可选尾随空格(摩托罗拉)
    “/Galaxy S/”//与Galaxy S完全匹配
    ];
    $replacements=[
    “($0)”,//将完整字符串匹配换行到括号中
    “
  • ”,//使用关闭和打开li标记作为新的分隔符 'Galaxy'//标记的文本(注意:后面的G和空格) ]; $full_list='
    • '.preg_replace($patterns,$replacements,$phones)。'
    '; echo$full_列表;
  • 未分配的产出:

    Samsung ( <span class="galaxy">galaxy</span> 8 )~LG G6~iPhone 7 Plus~ Motorola Z2
    
    <ul><li>Samsung ( <span class="galaxy">galaxy</span> 8 ),</li><li>LG G6,</li><li>iPhone 7 Plus,</li><li> Motorola Z2</li></ul>
    
    <ul><li>Samsung (<span class="galaxy">galaxy</span> 8)</li><li>LG G(6)</li><li>iPhone (7 Plus)</li><li>Motorola Z(2)</li></ul>
    
    • 三星(galaxy 8)
    • LG G(6)
    • iPhone(7 Plus)
    • 摩托罗拉Z(2)