Php 如何替换evrything例外文本

Php 如何替换evrything例外文本,php,regex,Php,Regex,我希望在php中替换除两个字符串之间的文本以外的所有内容 示例:观看西德尼的视频 我想把“看的视频”换成“没有”,只保留“西德尼” 需要使用此格式preg_replace(“regex code”,“replace with”,input text)您可以使用以下explode()函数来实现此目的: $returnValue = explode(' ', 'Watch Sidney\'s video'); 这将返回一个数组,如下所示: array ( 0 => 'Watch',

我希望在php中替换除两个字符串之间的文本以外的所有内容 示例:观看西德尼的视频

我想把“看的视频”换成“没有”,只保留“西德尼”


需要使用此格式preg_replace(“regex code”,“replace with”,input text)

您可以使用以下
explode()
函数来实现此目的:

$returnValue = explode(' ', 'Watch Sidney\'s video');
这将返回一个数组,如下所示:

array (
  0 => 'Watch',
  1 => 'Sidney's',
  2 => 'video',
)
现在检查数组的条目中是否有带的字符串,一旦得到它,trim将作为:

$myString  str_replace("\'s","",$returnValue[some_index]);

这将给出第一个空格和第一个撇号之间的文本(假设这些条件不变):


您可以使用以下正则表达式执行此操作:

/Watch (\w*)'s video/
您可以用
\1

现场演示

更新

php中的示例代码:

echo preg_replace('/Watch (\w*)\'s video/', "\\1", 'Watch Sidney\'s video');
输出

Sidney

请在此处尝试:

如果您想提取视频作者的姓名,您可以使用以下方法提取预匹配:

$matches = [];
preg_match('@Watch (\w+)\'s video@', $source, $matches);

echo $matches[1];

你想要的文本周围的两个字符串是否总是相同的?Watch的视频将始终相同。我将在wordpress插件中使用它,因此它必须采用这种格式preg_替换(“regex代码”,“替换为”,输入)我将在wordpress插件中使用它,因此它必须采用这种格式preg_替换(“regex代码”,“替换为”),输入)哦,好的。怎么样:$answer=preg_match(“/\s(.*?”/”,$message,$matches);echo$匹配[1];很抱歉,无法工作,它将在wordpress插件选项中,因此无法立即放置所有代码我使用preg\u replace(“/\'s(.*)/”,输入文本)此代码替换除“Watch”之外的所有内容,Sidney只需替换“Watch”到1)您不必使用所有代码,您只需替换
preg\u replace
中所有变量的值即可。2) 你的问题中没有“注意”,你能给出一个清晰的输入和输出示例吗@RogerKaputnik@RogerKaputnik还有一个工作示例:,这是必需的吗?preg_replace(“/\'s(.*)/”,观看Sidney的视频)>观看Sidney只需替换单词Watch,如果答案正确,您可以将答案标记为正确,帮助未来的访问者找到问题的答案@罗杰卡普特尼克
// replace apostrophe (') or words without possessive contraction ('s) (Watch, video) with empty string
preg_replace("/(?:'|\s?\b\w+\b\s?)(?!'s)/", "", "Watch Sidney's video") // => Sidney
$matches = [];
preg_match('@Watch (\w+)\'s video@', $source, $matches);

echo $matches[1];