为什么这个PHP正则表达式与重音字符不匹配?

时间:2010-11-19 21:28:09

标签: php regex preg-match

我正在编写一个快速的PHP页面,我需要忽略带有重音字符的任何字符串。我在每个单词上使用这个preg_match()字符串:

“[ÀÁÅÃÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõöøùúûüýþÿ]”

(我知道这是一种蛮力方法,但显然[a-zA-Z]可以匹配重音字符)

但是当它用带有重音字符的字符串搜索时,函数似乎永远不会返回true(例如:“cheapâ€?”,“gustarÃa”......)

我之前没有使用Regex,所以请指出我在这里犯的任何愚蠢的错误!

1 个答案:

答案 0 :(得分:3)

PHP正则表达式需要delimiters,如下所示:

preg_match('/[ÀÁÅÃÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõöøùúûüýþÿ]/', "gustaría");

请注意,最好使用单引号用于正则表达式,因为美元符号可能被php误认为变量。