2008/12/2 火曜日

文字列が日本語かどうか調べる方法について

Filed under: 正規表現 — ne-zu @ 23:46:08 このエントリをはてなブックマークに追加

文字列が日本語かどうか調べる方法について - PHPプロ!Q&A掲示板

挙げられている方法もさくっと実装できてよいと思いますが、「Perl 正規表現 日本語」などと検索すると
より本格的なのものが得られるかもしれません。

2008/5/12 月曜日

可変長テキストの戻り読みはできない

Filed under: 正規表現 — ne-zu @ 23:59:13 このエントリをはてなブックマークに追加

可変長テキストの戻り読み - 考える人, コードを書く人

可変長テキストの戻り読みはできませんよ、というお話。

PHP:
  1. <?php
  2.  $str = 'abbbbbbbbbbcghi';
  3.  $str = preg_replace('/(?<=ab+c)/', 'def', $str);
  4.  ?>

ということは出来ませんよ。ということらしいです。
ふむふむ。戻り読みは位置を指定できるというの今知りました(^_^;)

2008/5/8 木曜日

Zend_Validate_Alnumがなんかおかしい - 適当にメモったらこうなった

Filed under: 正規表現, Zend Framework — ne-zu @ 23:48:58 このエントリをはてなブックマークに追加

Zend_Validate_Alnumがなんかおかしい - 適当にメモったらこうなった

UTF-8環境下では挙動がおかしくなるという話で。
Zend_Validate_Alnum中のパターンを

PHP:
  1. $pattern = '/[^\p{Ll}\p{Lu}\p{N}' . $whiteSpace . ']/u';

に変更するとUTF-8でもマッチング可能になります。
マルチバイトは何かと気をつけないといけませんね。

2007/10/29 月曜日

preg_quoteで特殊文字をエスケープ

Filed under: 正規表現 — ne-zu @ 22:46:13 このエントリをはてなブックマークに追加

preg_quoteを使うと、正規表現で特殊な文字として扱われる

. \ + * ? [ ^ ] $ ( ) { } = ! < > | :

を、エスケープすることができます。

PHP:
  1. <?php
  2. $keywords = '$40 for a g3/400';
  3. $keywords = preg_quote($keywords, '/');
  4. echo $keywords; // \$40 for a g3\/400 を返します
  5. ?>

これは便利ですね。次正規表現を使う際には是非活用してみようと思います。メモメモ。

参考URL

2007/8/2 木曜日

正規表現にUTF-8を使うには/uオプションをつける。

Filed under: 正規表現 — ne-zu @ 23:14:34 このエントリをはてなブックマークに追加

正規表現を組んでいて、なんだか思い通りの挙動をしないなーと思った時、思い出してください。

マニュアル:パターン修飾子

u (PCRE_UTF8)
この修正子は、Perl 非互換な PCRE の機能を有効にします。パターン 文字列は、UTF-8 エンコードされた文字列として処理されます。 この修正子は、UNIX では PHP 4.1.0 以降、Win32 では PHP 4.2.3 以降で 使用可能です。 また、PHP 4.3.5 以降では、パターンの UTF-8 としての妥当性も確認されます。

UTF-8な文字列をpreg系で使っている時は、uオプションを有効にしましょう!

Powered by PHP-SeeD and WordPress ME