我有以下字符串:
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。
最简单的方法是什么?
答案 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);