3

アクセントを正規表現に含めるにはどうすればよいですか? a-zandからの文字を検出したいのですäáàëéèíìöóòúùñçが、この正規表現は機能しません。

$pattern = '/^([a-zäáàëéèíìöóòúùñç])/i';
4

5 に答える 5

3

事前定義されたクラスを使用して、すべての文字に一致させることができます。次に例を示します。

[\p{L}]

これは、ほとんどの正規表現エンジンで機能します。

正規表現のUnicodeの詳細については、たとえば、http://www.regular-expressions.info/unicode.htmlを参照してください。

于 2012-06-20T16:07:07.790 に答える
3

どうですか:

cat test.php
<?php
preg_match('/\pL/u', 'é', $m);
print_r($m);
?>


php -q test.php
Array
(
    [0] => é
)
于 2012-06-20T17:31:10.747 に答える
1

uフラグを正規表現に追加してみてください (修飾子ページのPCRE_UTF8を参照してください) 。

于 2012-06-20T16:06:00.760 に答える
0

ここで私の問題の解決策を見つけることができます: preg_replace_callbackで正規表現を使用 すると、正規表現は次のようにならなければならないように見えました:$ pattern ='/(\ p {L})(。+)/ iu';

于 2012-06-21T08:50:13.010 に答える
0

最後の「i」を削除すると、Rubularを使用してテストしますが、それがなくても機能します(また/、これらはphp固有であるため)。

したがって、基本的にこのページで次のようにテストします。^([a-zäáàëéèíìöóòúùñç])

于 2012-06-20T16:16:00.973 に答える