如何在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;