我必须拆分每个单词并将其与内置本地词典进行比较,并将其替换为另一种语言中的等效单词。当我分割带有特殊字符的单词时(* 例如: * of !)即使它们是相同的,它也不会与字典匹配。
现在我需要用空字符串替换那些特殊字符。
$opis="of!";
$a=preg_replace('!"#$%&/()=?*+'-.,;:_', '', $opis);
print_r($a);
答案 0 :(得分:3)
您可以使用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)
答案 1 :(得分:1)
每个人在这里张贴正则表达式有什么问题? :/
好的,你当前解决方案遇到的问题在于你如何编写正则表达式。
步骤1:使用单个\
逃离所有RegEx的内部特殊字符(以及您在字符串中留下的额外单引号...)
结果:
'!"#\$%&/\(\)=\?\*\+\'-\.,;:_'
步骤2:将结果封装在字符类中,否则RegEx将尝试替换所有出现的字符串!"#$%&/()=?*+'-.,;:_
这显然不是你想要发生的事情。
封装后:
'[!"#\$%&/\(\)=\?\*\+\'-\.,;:_]'
最后,你需要用正则表达式来界定正则表达式(PHP要求它定义正则表达式),我们还要添加贪婪的“+”符号以匹配尽可能多的顺序符号。
决赛:
'~[!"#\$%&/\(\)=\?\*\+\'-\.,;:_]+~'
现在你应该好好去:
$opis="of!";
$opis = preg_replace('[!"#\$%&/\(\)=\?\*\+\'-\.,;:_]+', '', $opis);
print_r($opis)
享受。下次咨询正则表达式信息的最佳位置here
答案 2 :(得分:0)
是你在找什么?
http://php.net/manual/fr/function.str-replace.php
$result = str_replace($search, $replace, $subject);
答案 3 :(得分:0)
将此正则表达式用于上述
$a=preg_replace("/[^A-Za-z0-9]/", '', $opis);
测试
答案 4 :(得分:0)
使用正则表达式时遇到的问题是您需要转义字符串中的多个字符,因为正则表达式使用了大量特殊字符。可在此处找到列表:http://www.regular-expressions.info/reference.html
使用像str_replace这样的函数会更容易解决。
答案 5 :(得分:0)
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");
答案 6 :(得分:0)
如何使用str_replace!它对性能的影响较小
$chars= array("!", "\"", "#", "$", "%", "&", "/", "(", ")", "?", "*", "+", "'", "-", ".", ",", ";", ":", "_");
$cleanstring = str_replace($chars, "", $yourstring);