preg_match多个和突出的字符

时间:2012-09-20 19:05:53

标签: php regex preg-match

上面的代码

preg_match('~\b(rain|dry|certain|clear)\b~i',$string);

它就像一个魅力,但当我在寻找带有突出字符的单词时,它不起作用。 有人可以帮助我

1 个答案:

答案 0 :(得分:0)

嗯,从技术上讲,a和á和à都是解释器的不同字符。它们的编码方式不同,无法知道哪些不同的编码代表“相似”字符(在某些语言中,重音字符是截然不同的字母)。因此,您需要包含要匹配的所有变体。但是,如果您需要字符串中的实际偏移量,则可能会遇到困难,因为对于UTF-8字符串,偏移量以字节为单位而不是字符。

有关如何包含角色的所有版本的示例,请参阅this SO question

this bug report以防您遇到错误偏移的问题。