我使用preg_replace函數。我希望函數不要刪除撇號(')字符。所以我希望它能把這個詞作爲(點)。 我該怎麼做?使用preg_replace函數刪除字符
$last_word = "o'clock.";
$new_word= preg_replace('/[^a-zA-Z0-9 ]/','',$last_word);
echo $new_word;
我使用preg_replace函數。我希望函數不要刪除撇號(')字符。所以我希望它能把這個詞作爲(點)。 我該怎麼做?使用preg_replace函數刪除字符
$last_word = "o'clock.";
$new_word= preg_replace('/[^a-zA-Z0-9 ]/','',$last_word);
echo $new_word;
嘗試:
$last_word = "o'clock.";
$new_word= preg_replace('/[^a-zA-Z0-9\' ]/','',$last_word);
echo $new_word;
演示在這裏:http://ideone.com/JMH8F
您使用的正則表達式不會刪除「'」(撇號)。相反,它與主題字符串根本不匹配,因爲「。」 (點)。在這種情況下,preg_replace()返回NULL。
它返回'oclock'。 http://ideone.com/FoRE7 – 2012-07-26 12:05:12
對不起,你是對的。我會給另一個答案:-( – arkascha 2012-07-26 12:07:19
是否有去(返回)? – user1425871 2012-07-26 12:08:15
該正則表達式明確刪除所有字符除了的字母和數字。請注意領先的「^」。所以它會做你所要求的。
所以很有可能你要添加的「'」(撇號),以正則表達式中設置排除:
'/[^a-zA-Z0-9\' ]/'
更改原始'/[^a-zA-Z0-9 ]/'
到"/[^a-zA-Z0-9 ']/"
。這僅僅包括了否定字符類中的撇號。
另外:我的建議是對字符串使用雙引號(與"o'clock."
一樣),因爲混合PHP字符串和正則表達式模式的反斜槓轉義可能會很快引起混淆。
然後包括在您忽略的人物名單逃脫撇號。 – dnagirl 2012-07-26 12:07:25
那麼最終的結果應該是什麼?你在尋找什麼規則(英文)?是,「刪除任何不是字母,數字,空格或撇號的字符」? – 2012-07-26 12:08:11