如何替换evrything exept文本

时间:2017-10-30 05:13:18

标签: php regex

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

我想用什么都不取代“观看视频”而只是保留“西德尼”

需要采用这种格式preg_replace(“正则表达式代码”,“替换为”,输入文本)

5 个答案:

答案 0 :(得分:1)

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

/Watch (\w*)'s video/

您可以使用\1

替换

现场演示here

更新

php中的示例代码:

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

<强>输出

Sidney

答案 1 :(得分:0)

您可以使用以下explode()功能:

$returnValue = explode(' ', 'Watch Sidney\'s video');

这将返回一个数组:

array (
  0 => 'Watch',
  1 => 'Sidney's',
  2 => 'video',
)

现在使用&#39;检查数组中的字符串条目,一旦得到它,请将其修剪为:

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

答案 2 :(得分:0)

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

<?php
$message = "Watch Sidney's video";
$start = strpos($message, " ");
$finish = strpos($message, "'");
echo substr($message, $start, $finish-$start);

答案 3 :(得分:0)

componentDidMount()

在此处试试:https://regex101.com/r/sC7GyQ/1

答案 4 :(得分:0)

如果你想提取视频作者的名字 - 你可以像这样使用提取preg_match:

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

echo $matches[1];