Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/251.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中替换到匹配前x和匹配后x>;_Php_Replace_Preg Replace_Match - Fatal编程技术网

如何在php中替换到匹配前x和匹配后x>;

如何在php中替换到匹配前x和匹配后x>;,php,replace,preg-replace,match,Php,Replace,Preg Replace,Match,例如,我有以下文字: 我在一家公司做x。我在一家公司做兼职。我在一家公司做兼职。我在一家公司当经理。我在一家公司当b。我以 我想匹配我在一家公司工作的和,并用123和456替换这些文本,因此最终结果将是: 123 x 456。123 y 456。123Z456。123A 456。123 b 456。我以 目前,我一直在寻找每个句子并使用str_replace(),这对于大文本来说是不可能的 注意:请注意,最后的i work as没有被替换,因为公司中没有结束语 更新代码: if(isset($_

例如,我有以下文字:

我在一家公司做x。我在一家公司做兼职。我在一家公司做兼职。我在一家公司当经理。我在一家公司当b。我以

我想匹配我在一家公司工作的
,并用
123
456
替换这些文本,因此最终结果将是:

123 x 456。123 y 456。123Z456。123A 456。123 b 456。我以

目前,我一直在寻找每个句子并使用
str_replace()
,这对于大文本来说是不可能的

注意:请注意,最后的
i work as
没有被替换,因为公司中没有结束语

更新代码:

if(isset($_GET['path']) && ($_GET['path']=="products.aspx")){
    $contents = str_replace("http://refund-advantage.com/https://player.vimeo","https://player.vimeo",$contents);
}

if(isset($_GET['path']) && ($_GET['path']=="LogonSave2007.asp")){
    $contents = str_replace("http://refund-advantage.com/logon2007.asp?Fr=Err","http://trialwelcome.com/clone/logon2007.asp?Fr=Err",$contents);
}
if(isset($_GET['path']) && ($_GET['path']=="MainMenu2007.asp")){
    $contents = str_replace("http://refund-advantage.com/https://www.refund-advantage.com/","http://trialwelcome.com/clone/",$contents);
}
if(isset($_GET['path']) && ($_GET['path']=="TalcMain2007.asp")){
    $contents = str_replace("http://refund-advantage.com/TALCPage1.asp","http://trialwelcome.com/clone/TALCPage1.asp",$contents);
}

您可以为此使用正则表达式:

/i work as(.*?)in a company/s

详细信息

  • 我的工作方式是
    ——一系列文字字符
  • (.*)
    -组1捕获任何0+个字符,尽可能少,直到第一次出现
  • 在公司中
    ——一系列文字字符
  • /s
    -强制点匹配换行符的点所有修改器
  • ${1}
    -在relace模式中,指的是使用组1捕获的文本
见a:


你试过了吗?请把你的密码也发出来。我发了密码。我只是一个接一个地这么做。您是否尝试使用regex
$s2=preg_replace(“/in a company/”、“456”、preg_replace(“/I work as/”、“123”、$input_line))
我宁愿使用
str\u replace()
——代码的输出是:
123 x 456。123 y 456。123Z456。123A 456。123 b 456。123
我不想要最后一个
123
,因为没有结束语
$str = 'i work as x in a company. i work as y in a company. i work as z in a company. i work as a in a company. i work as b in a company. i work as';
$result = preg_replace('/i work as(.*?)in a company/s', '123${1}456', $str);
echo $result;