我必須拆分每個單詞並將其與內置的本地字典進行比較,並用另一種語言中的等效單詞替換它。當我用特殊字符拆分單詞時(例如:* ) *!)即使它們相同,也不會與字典匹配。查找並替換字符串中的特殊字符
現在我需要用空字符串替換這些特殊字符。
$opis="of!";
$a=preg_replace('!"#$%&/()=?*+'-.,;:_', '', $opis);
print_r($a);
我必須拆分每個單詞並將其與內置的本地字典進行比較,並用另一種語言中的等效單詞替換它。當我用特殊字符拆分單詞時(例如:* ) *!)即使它們相同,也不會與字典匹配。查找並替換字符串中的特殊字符
現在我需要用空字符串替換這些特殊字符。
$opis="of!";
$a=preg_replace('!"#$%&/()=?*+'-.,;:_', '', $opis);
print_r($a);
可以使用str_replace
或preg_replace
例preg_replace
http://php.net/manual/en/function.preg-replace.php
$str = preg_replace("/\W+/", '', $str);
var_dump($str);
str_replace
例http://php.net/manual/en/function.str-replace.php
$search = '!"#$%&/()=?*+\'-.,;:_' ;
$search = str_split($search);
$str = "OF!" ;
var_dump(str_replace($search, "", $str));
輸出
string 'OF' (length=2)
這是你在找什麼?
http://php.net/manual/fr/function.str-replace.php
$result = str_replace($search, $replace, $subject);
使用上述
$a=preg_replace("/[^A-Za-z0-9]/", '', $opis);
測試
您使用正則表達式時有問題這個正則表達式,你需要逃跑的幾個中文字該字符串,因爲正則表達式使用了許多特殊字符。可以在這裏找到一個列表:http://www.regular-expressions.info/reference.html
使用像str_replace這樣的函數將是一個更簡單的解決方案。
str_replace();是你需要的。
從PHP官方文檔:
// Provides: Hll Wrld f PHP
$vowels = array("a", "e", "i", "o", "u", "A", "E", "I", "O", "U");
$onlyconsonants = str_replace($vowels, "", "Hello World of PHP");
怎麼樣使用str_replace函數!它在性能上有較小的打擊
$chars= array("!", "\"", "#", "$", "%", "&", "/", "(", ")", "?", "*", "+", "'", "-", ".", ",", ";", ":", "_");
$cleanstring = str_replace($chars, "", $yourstring);
大家在這裏發佈有關正則表達式的問題是什麼? :/
好的,您現有解決方案存在的問題在於您如何編寫正則表達式。
步驟1:使用單個\
(以及您在字符串中留下的額外單引號)將RegEx的所有內部特殊字符全部刪除...)
結果:
'!"#\$%&/\(\)=\?\*\+\'-\.,;:_'
第2步:封裝結果在字符類,否則正則表達式將只是嘗試替換字符串!"#$%&/()=?*+'-.,;:_
的所有出現,這顯然不是你想什麼發生。
封裝後:
'[!"#\$%&/\(\)=\?\*\+\'-\.,;:_]'
最後,您需要界定的東西正則表達式(PHP需要這種方法來定義一個正則表達式),我們也將添加貪婪的「+」符號匹配儘可能多的順序符號。
決賽:
'~[!"#\$%&/\(\)=\?\*\+\'-\.,;:_]+~'
現在,你應該去的好:
$opis="of!";
$opis = preg_replace('[!"#\$%&/\(\)=\?\*\+\'-\.,;:_]+', '', $opis);
print_r($opis)
享受。下一次請參考正則表達式信息的最佳位置here
我有很多特殊字符!「#$%&/()=?* +' - 。,;::_ to compare..through str_replace we can able to use只有一個特殊的字符比較na? – 2012-04-16 12:08:09