Is it possible to replace a word after a phrase using regular expression in php?

前端 未结 2 1691
没有蜡笔的小新
没有蜡笔的小新 2021-01-29 10:30

Input text: school of engineering, school of medicine

Output required: school of education, school of education

Rule: any words followed by \'school of\' needs t

2条回答
  •  梦毁少年i
    2021-01-29 11:19

    Sure thing, just use a positive lookbehind on school of plus the space:
    (?<=school of )\w+

    • (?<=school of ) matches anything that comes after school of and a space.
    • \w denotes any word character, and + denotes between one and an unlimited number.

    So your code would be:

    $inputext = "school of engineering, school of medicine"; 
    $rule ="/(?<=school of )\w+/";
    $replacetext = "education";
    $outputext = preg_replace($rule, $replacetext, $inputext);
    echo($outputext);
    

    Which outputs:

    school of education, school of education

    This can be seen working on Regex101 here and 3val here.

提交回复
热议问题