代码之家  ›  专栏  ›  技术社区  ›  user4826347

是否可以在PHP中使用正则表达式替换短语之前的单词?[复制品]

  •  -1
  • user4826347  · 技术社区  · 6 年前

    输入文本: Engineering School, Medical school

    所需输出: Educational school, Educational school

    规则:短语前的任何单词 school (不区分大小写)需要替换为 Educational

    $inputext = "Engineering School, Medical school"; 
    $rule ="//s/";
    $replacetext = "Educational";
    $outputext = preg_replace($rule, $replacetext, $inputext);
    echo($outputext);
    

    谢谢你的建议。

    1 回复  |  直到 6 年前
        1
  •  1
  •   Mohammad DefenestrationDay    6 年前

    使用 /\w+(?= school)/i 在regex中选择前面任何单词的模式 school .

    $inputext = "Engineering school, Medical school"; 
    $rule ="/\w+(?= school)/i";
    $replacetext = "Educational";
    $outputext = preg_replace($rule, $replacetext, $inputext);
    

    检查结果 demo

    你也可以用 /\w+(?= school(,|$))/i 防止匹配不需要的单词 schoolboy 正如@wiktorstribi_¼ew所说。