在字符串替换中使用通配符的最简单方法?

时间:2013-10-24 11:26:39

标签: php wildcard

我有以下字符串:

Johnny arrived at BOB
Peter is at SUSAN

我想要一个可以执行此操作的功能:

$string = stripWithWildCard("Johnny arrived at BOB", "*at ")

$ string必须等于BOB。如果我这样做:

$string = stripWithWildCard("Peter is at SUSAN", "*at ");

$ string必须等于SUSAN。

最简单的方法是什么?

1 个答案:

答案 0 :(得分:5)

正则表达式。您将.*替换为*并替换为空字符串:

echo preg_replace('/.*at /', '', 'Johnny arrived at BOB');

请记住,如果字符串"*at "没有硬编码,那么您还需要引用正则表达式中具有特殊含义的任何字符。所以你会:

$find = '*at ';
$find = preg_quote($find, '/');  // "/" is the delimiter used below
$find = str_replace('\*', '.*'); // preg_quote escaped that, unescape and convert

echo preg_replace('/'.$find.'/', '', $input);