アクセントを正規表現に含めるにはどうすればよいですか? a-z
andからの文字を検出したいのですäáàëéèíìöóòúùñç
が、この正規表現は機能しません。
$pattern = '/^([a-zäáàëéèíìöóòúùñç])/i';
アクセントを正規表現に含めるにはどうすればよいですか? a-z
andからの文字を検出したいのですäáàëéèíìöóòúùñç
が、この正規表現は機能しません。
$pattern = '/^([a-zäáàëéèíìöóòúùñç])/i';
事前定義されたクラスを使用して、すべての文字に一致させることができます。次に例を示します。
[\p{L}]
これは、ほとんどの正規表現エンジンで機能します。
正規表現のUnicodeの詳細については、たとえば、http://www.regular-expressions.info/unicode.htmlを参照してください。
どうですか:
cat test.php
<?php
preg_match('/\pL/u', 'é', $m);
print_r($m);
?>
php -q test.php
Array
(
[0] => é
)
u
フラグを正規表現に追加してみてください (修飾子ページのPCRE_UTF8を参照してください) 。
ここで私の問題の解決策を見つけることができます: preg_replace_callbackで正規表現を使用 すると、正規表現は次のようにならなければならないように見えました:$ pattern ='/(\ p {L})(。+)/ iu';
最後の「i」を削除すると、Rubularを使用してテストしますが、それがなくても機能します(また/
、これらはphp固有であるため)。
したがって、基本的にこのページで次のようにテストします。^([a-zäáàëéèíìöóòúùñç])