将PHP中的波兰语字符与preg_match进行匹配

时间:2015-09-17 19:22:05

标签: php regex unicode preg-match

我正在尝试在PHP中进行一些服务器端验证。我努力了,但我发现仍然没有解决方案。我试图在输入中仅允许波兰语字符。

为此,我使用了:

preg_match('/^[\x{0104}-\x{017c}]*$/u',$titles)

然而,这不起作用。

任何人都知道如何正确地写它?

1 个答案:

答案 0 :(得分:2)

要仅匹配波兰语字母,您只需要一个字符类:

[a-pr-uwy-zA-PR-UWY-ZąćęłńóśźżĄĆĘŁŃÓŚŹŻ]

用作

preg_match('/^[A-PR-UWY-ZĄĆĘŁŃÓŚŹŻ]*$/iu',$titles)

请注意Polish中没有QVX,但由于可以用某些词语(taxi)来满足它们,可能也想允许这些字母。然后,使用'/^[A-ZĄĆĘŁŃÓŚŹŻ]*$/iu'正则表达式。

IDEONE demo

if (preg_match('/^[A-PR-UWY-ZĄĆĘŁŃÓŚŹŻ]*$/iu', "spółka")) {
    echo "The whole string contains only Polish letters";
}