加入收藏 | 设为首页 | 会员中心 | 我要投稿 安卓应用网 (https://www.0791zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > PHP > 正文

php 常用正则表达式汇总

发布时间:2020-05-25 05:15:26 所属栏目:PHP 来源:互联网
导读:php 常用正则表达式汇总

对php常用正则表达式汇总感兴趣的小伙伴,下面一起跟随脚本之家 jb51.cc的小编两巴掌来看看吧!  
常用的数字正则(严格匹配)
 
正则 含义
^[1-9]d*$ 匹配正整数
^-[1-9]d*$ 匹配负整数
^-?[1-9]d*$ 匹配整数
^[1-9]d*|0$ 匹配非负整数(正整数 + 0)
^-[1-9]d*|0$ 匹配非正整数(负整数 + 0)
^[1-9]d*.d*|0.d*[1-9]d*$ 匹配正浮点数
^-([1-9]d*.d*|0.d*[1-9]d*)$ 匹配负浮点数
^-?([1-9]d*.d*|0.d*[1-9]d*|0?.0+|0)$ 匹配浮点数
^[1-9]d*.d*|0.d*[1-9]d*|0?.0+|0$ 匹配非负浮点数(正浮点数 + 0)
^(-([1-9]d*.d*|0.d*[1-9]d*))|0?.0+|0$ 匹配非正浮点数(负浮点数 + 0)
 
----------------------------------------------------------------------------------------------------------------
 
常用字符串正则
 
正则 含义 补充
^[A-Za-z]+$ 匹配由26个英文字母组成的字符串 或 /^[a-z]+$/i
^[A-Z]+$ 匹配由26个英文字母的大写组成的字符串
^[a-z]+$ 匹配由26个英文字母的小写组成的字符串
^[A-Za-z0-9]+$ 匹配由数字和26个英文字母组成的字符串 注意w包含下划线_
^w+$ 匹配由数字、26个英文字母或者下划线组成的字符串
常用数字正则和常用字符串正则,是最基本的正则应用,读者可以作为入门的练习,试试能不能快速的读懂其中的含义。
 
----------------------------------------------------------------------------------------------------------------
 
匹配中文字符
 
普遍使用的正则是[u4e00-u9fa5],但这个范围并不完整。例如:
/[u4e00-u9fa5]/.test('中国') // 测试部首,返回false
根据Unicode 5.0版编码,要准确的判断一个中文字符要包括:
范围 含义 范围 含义
2E80-2EFF CJK 部首补充 2F00-2FDF 康熙字典部首
3000-303F CJK 符号和标点 31C0-31EF CJK 笔画
3200-32FF 封闭式 CJK 文字和月份 3300-33FF CJK 兼容
3400-4DBF CJK 统一表意符号扩展 A 4DC0-4DFF 易经六十四卦符号
4E00-9FBF CJK 统一表意符号 F900-FAFF CJK 兼容象形文字
FE30-FE4F CJK 兼容形式 FF00-FFEF 全角ASCII、全角标点
因此,正确的匹配中文字符正则表达式为:
var rcjk = /[u2E80-u2EFFu2F00-u2FDFu3000-u303Fu31C0-u31EFu3200-u32FFu3300-u33FFu3400-u4DBFu4DC0-u4DFFu4E00-u9FBFuF900-uFAFFuFE30-uFE4FuFF00-uFFEF]+/g;
如果不希望匹配标点、符号,在正则中去掉对应的范围即可:
3000-303F CJK 符号和标点 FF00-FFEF 全角ASCII、全角标点
 
----------------------------------------------------------------------------------------------------------------
 
匹配双字节字符(包括汉字在内)
 
[^x00-xff],可以用来计算字符串的长度(一个双字节字符长度计2,ASCII字符计1),代码示例如下:
console.info( "abc".replace( /[^x00-xff]/g,"aa" ).length ) // 3
console.info( "汉字".replace( /[^x00-xff]/g,"aa" ).length ) // 4
console.info( "abc汉字".replace( /[^x00-xff]/g,"aa").length ) // 7
 

(编辑:安卓应用网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读