0

0

【php】正?表?

php中文网

php中文网

发布时间:2016-06-23 14:34:43

|

944人浏览过

|

来源于php中文网

原创

【概要】
PHPには正?表??数群が3??ある。

??正?表??数(POSIX Regex):ereg()系。マルチバイト不可。 PCRE正?表??数(Perl互?):preg_match()系。マルチバイトはUTF-8のみ??。 マルチバイト文字??正?表??数:mb_ereg()系。Rubyの正?表?を使用。PHP5.0で「鬼?」?み?み。

主な特??

PCREはバイナリセ?フで、POSIXはセ?フじゃない。 PCREの正?表?は//などのデリミタで?う必要がある。 Perl互?の正?表??文を使用するpreg_match()のほうが、多くの?合ereg()よりも速く?作するらしい。

EUC-JPを使うのでmb_ereg。
●int mb_ereg ( string $pattern , string $string [, array $regs ] )

マルチバイト文字列に正?表?マッチを行う。 マルチバイト??の正?表?マッチを行い、一致した?合は 1 を返す。オプションの 3 番目の引数を指定した?合は、一致した部分のバイト数を返し、一致した部分文字列が配列 regs に格?される。空文字に一致した?合は 1 を返す。正?表?に一致しないか、エラ?を?生した?合に FALSE を返す。

【正?表?例】
●IP4:xxx.xxx.xxx.xxxの形式チェック
"^([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})$"
●西?日付:yyyy-mm-ddの形式チェック
"^([0-9]{4})-([0-9]{1,2})-([0-9]{1,2})$"
●URL:有?文字以外をチェック
"[^\-_.!~*\'()a-zA-Z0-9;\/?:\@&=+\$,%#]"
●USERAGENT:有?文字以外をチェック
"[^\-_.!~*\'()a-zA-Z0-9;\/?:\@&=+\$,%#\x20\[\]\{\}]"
●名前:?字チェック(未定?含む全??)
"[\xa1\xa1-\xfe\xfe]"
●名前英?名:有?文字チェック(英文字、ハイフン、ピリオド、半角スペ?ス)
"[a-zA-Z\-.\x20]+"
形式チェックは?しいかも。
●フリガナ:全角カナチェック(全角カナ、?音、全角・半角スペ?ス)
"^[\x20ァ-ヶ?- ]+$"
●Email:PHP系ライブラリの?装(バ?ジョンで?なる可能性あり)

phpspot:シンプル

'/^[a-zA-Z0-9_\.\-]+?@[A-Za-z0-9_\.\-]+$/'

PEAR::Mail_RFC822:オ?バ?ライン文字が入力できませんh

$regex = $strict ? '/^([.0-9a-z_+-]+)@(([0-9a-z-]+\.)+[0-9a-z]{2,})$/i' : '/^([*+!.$|\'\\%\/0-9a-z^_`{}=?(オ?バ?ライン):-]+)@(([0-9a-z-]+\.)+[0-9a-z]{2,})$/i';

CakePHP:63文字の根?は?

'/\\A(?:^([a-z0-9][a-z0-9_\\-\\.\\+]*)@([a-z0-9][a-z0-9\\.\\-]{0,63}\\.(com|org|net|biz|info|name|net|pro|aero|coop|museum|[a-z]{2,4}))$)\\z/i'

Ethna

'/^([a-z0-9_]|\-|\.|\+)+@(([a-z0-9_]|\-)+\.)+[a-z]{2,6}$/i'


【正?表?注意事?】

perlのサンプルで//?みがあるものは不要なのではずす。 空白文字は\sじゃなくて、\x20。 16?数文字の??(例:\x20\x20)は多バイト符号で表?された1文字と?なされる。 英?名表?はa~z,A~Z,-(ハイフン),.(ピリオド),'(アポ),"(ダブル)が?受けられる。アポとダブルはミドルネ?ムのくくりに使われる。アポは?音?助(オライリ?:O'Reilly)のように使われる。~3世の?述は、IIIとなる。数字0~9は使われない。通常判定は、英文字とハイフン、ピリオド、半角スペ?スでOK。 emailについて emailはコメントネストがあるため正?表?では?述できないらしい。 @より前の部分は、RFCの定?では半角英数?号なんでもありらしい。 日本では、プロバイダが?行するメ?ルアカウントは、半角英数とハイフン、アンダ?バ?、ピリオドのみとするところがほとんどと思われる。(携?含む) WEBメ?ラ?系、特にGmailは、向こうの文化なので、アカウント部分に?号あり。Gmailの独自仕??でアカウント部分の+文字から@までは??らしい。なので?述し放?@@; 最?解は?い。自分のサイト?用に合わせて、チェック仕?(?インジェクション含む)を考える。

【参考URL】
●PHP で使用できる正?表?演算子(mb_ereg)
http://www.kt.rim.or.jp/~kbk/regex/regex.html#PHP
●鬼?正?表?
http://www.geocities.jp/kosako3/oniguruma/doc/RE.ja.txt
●EUC-JP文字コ?ド表
http://charset.7jp.net/euc.html

相关文章

PHP速学教程(入门到精通)
PHP速学教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
高德地图升级方法汇总
高德地图升级方法汇总

本专题整合了高德地图升级相关教程,阅读专题下面的文章了解更多详细内容。

43

2026.01.16

全民K歌得高分教程大全
全民K歌得高分教程大全

本专题整合了全民K歌得高分技巧汇总,阅读专题下面的文章了解更多详细内容。

82

2026.01.16

C++ 单元测试与代码质量保障
C++ 单元测试与代码质量保障

本专题系统讲解 C++ 在单元测试与代码质量保障方面的实战方法,包括测试驱动开发理念、Google Test/Google Mock 的使用、测试用例设计、边界条件验证、持续集成中的自动化测试流程,以及常见代码质量问题的发现与修复。通过工程化示例,帮助开发者建立 可测试、可维护、高质量的 C++ 项目体系。

24

2026.01.16

java数据库连接教程大全
java数据库连接教程大全

本专题整合了java数据库连接相关教程,阅读专题下面的文章了解更多详细内容。

35

2026.01.15

Java音频处理教程汇总
Java音频处理教程汇总

本专题整合了java音频处理教程大全,阅读专题下面的文章了解更多详细内容。

16

2026.01.15

windows查看wifi密码教程大全
windows查看wifi密码教程大全

本专题整合了windows查看wifi密码教程大全,阅读专题下面的文章了解更多详细内容。

56

2026.01.15

浏览器缓存清理方法汇总
浏览器缓存清理方法汇总

本专题整合了浏览器缓存清理教程汇总,阅读专题下面的文章了解更多详细内容。

16

2026.01.15

ps图片相关教程汇总
ps图片相关教程汇总

本专题整合了ps图片设置相关教程合集,阅读专题下面的文章了解更多详细内容。

9

2026.01.15

ppt一键生成相关合集
ppt一键生成相关合集

本专题整合了ppt一键生成相关教程汇总,阅读专题下面的的文章了解更多详细内容。

26

2026.01.15

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
PHP面向对象基础课程(更新中)
PHP面向对象基础课程(更新中)

共12课时 | 0.7万人学习

【李炎恢】ThinkPHP8.x 后端框架课程
【李炎恢】ThinkPHP8.x 后端框架课程

共50课时 | 4.5万人学习

Swoft2.x速学之http api篇课程
Swoft2.x速学之http api篇课程

共16课时 | 0.9万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号