我正在尝试为任何给定的字符串创建正则表达式。正则表达式 - preg_match拉丁和希腊字符
目标:删除所有字符,这是不是 “拉丁” 或 “小写希腊” 或 “数字”。
我到目前为止做了什么:[^a-z0-9]
这对于拉丁字符非常适用。
当我尝试这个:[^a-z0-9α-ω]
没有运气。工作,但没有任何其他符号像!!#$%@%#$ @,`
我的知识是有限的,当涉及正则表达式。任何帮助将非常感激!
编辑:
发布以下是匹配指定的字符,并创建一个塞出来,用破折号作为分隔符的功能:
$q_separator = preg_quote('-');
$trans = array(
'&.+?;' => '',
'[^a-z0-9 -]' => '',
'\s+' => $separator,
'('.$q_separator.')+' => $separator
);
$str = strip_tags($str);
foreach ($trans as $key => $val){
$str = preg_replace("#".$key."#i", $val, $str);
}
if ($lowercase === TRUE){
$str = strtolower($str);
}
return trim($str, '-');
因此,如果字符串是:的OnCE !曾几何时#%@墨西哥
使用功能$$输出将是:一次后,一时间,在墨西哥
这工作正常,但我想preg_match也排除希腊字符。
每个操作系统preg_match的重复问题? – mallix
他有一个很好的解决方案.. –