这将输出:
我想用
$san_field = 'sometext PROS sometext sometext1234 CALEND 2007 RIT';
$pattern = '/(\s|^|- |--)(?:CALEND|2007|CALEND 2007 RIT)(--| -|\s|$)/i';
echo preg_replace($pattern, ' ', $san_field)
>> sometext PROS sometext sometext1234 2007 RIT
我想用
CALEND 2007 RIT
替换第一个在$san_field
中找到的匹配项CALEND
。
我知道可以这样做:$san_field = 'sometext PROS sometext sometext1234 CALEND 2007 RIT';
$pattern = '/(\s|^|- |--)(?:CALEND 2007 RIT|CALEND|2007)(--| -|\s|$)/i';
echo preg_replace($pattern, ' ', $san_field)
>> sometext PROS sometext sometext1234
但是是否有更正确和实用的方法,因为我要将这些模式插入到一个相当大的数组中...
CALEND
出现在数组中CALEND 2007 RIT
之前,那么我期望的结果将无法实现。感谢preg_quote,我会使用它。 - Perocatrsort($replace, SORT_STRING | SORT_FLAG_CASE);
。 - Casimir et Hippolyte