0

次の文字列があります。

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 と等しくなければなりません。

これを行う最短の方法は何ですか?

4

1 に答える 1

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);
于 2013-10-24T11:28:21.563 に答える