我使用preg_replace函数。我希望函数不要删除撇号(')字符。所以我想把它作为(点)返回。 我怎样才能做到这一点?
$last_word = "o'clock.";
$new_word= preg_replace('/[^a-zA-Z0-9 ]/','',$last_word);
echo $new_word;
答案 0 :(得分:0)
尝试:
$last_word = "o'clock.";
$new_word= preg_replace('/[^a-zA-Z0-9\' ]/','',$last_word);
echo $new_word;
在这里演示:http://ideone.com/JMH8F
答案 1 :(得分:0)
该正则表达式明确删除字母和数字除之外的所有字符。注意前导“^”。所以它会按照你的要求去做。
所以很可能你想在正则表达式中的排除集中添加“'”(撇号):
'/[^a-zA-Z0-9\' ]/'
答案 2 :(得分:0)
将原始'/[^a-zA-Z0-9 ]/'
更改为"/[^a-zA-Z0-9 ']/"
。这只包括否定字符类中的撇号。
除此之外:我的建议是对字符串使用双引号(与"o'clock."
一样),因为将反斜杠转义与PHP字符串和正则表达式混合会很快混淆。
答案 3 :(得分:0)
试试这个。这可能会有所帮助......
$new_word= preg_replace('/\'/', '', $last_word);
答案 4 :(得分:-1)
您使用的正则表达式不会删除“'”(撇号)。相反,它根本不匹配主题字符串,因为“。” (点)。在这种情况下,preg_replace()返回NULL。