文档章节

php正则表达式 unicode编码属性

起什么name呢
 起什么name呢
发布于 2017/04/17 00:14
字数 295
阅读 19
收藏 0
点赞 0
评论 0
/**
 * Preprocess.
 *
 * @param string $string
 *
 * @return string
 */
protected function prepare($string)
{
    $string = preg_replace_callback('~[a-z0-9_-]+~i', function ($matches) {
        return "\t".$matches[0];
    }, $string);

    return preg_replace("~[^\p{Han}\p{P}\p{Z}\p{M}\p{N}\p{L}\t]~u", '', $string);
}

今天在看laravel的一个汉语转拼音的扩展包的时候,遇到这么一段代码,有两个地方看不懂。

第一个 正则中用的 ~~ 符号

看完后没有查阅到任何可以帮助到我的资料,于是经过实验后发现~和/的作用一样,表示这是一个正则表达式的定界符。

第二个 最后一段正则\p{Han}\p{P}

查看了php 官方手册

http://php.net/manual/zh/regexp.reference.unicode.php

里面的解释还是有些一知半解的感觉,没有理解其中的一段话(可能是翻译不太贴切导致的)

Unicode 字符集在具体文字中定义。使用文字名可以匹配这些字符集中的一个字符。例如:

  • \p{Greek}
  • \P{Han}

经实验,理解为可以匹配某种语言的一个字符。Han就表示中文

© 著作权归作者所有

共有 人打赏支持
起什么name呢
粉丝 1
博文 27
码字总数 12406
作品 0
朝阳
高级程序员
初步了解 PHP V6 中的新特性

增强对 Unicode 的支持 PHP V6 中的主要特性是增强对 Unicode 的支持。目前,PHP 实际上是一个二进制处理器。PHP V5 没有提供原生的 Unicode 支持;它假定所有字符的长度都为 1 字节,这在处...

红薯 ⋅ 2009/06/07 ⋅ 0

正则表达式和其在OC中的的使用

正则表达式和其在OC中的的使用 最近对正则表达式(regex)很感兴趣, 于是了解了一下, 正则表达式是所有语言都通用的一套查找字符串的方法, 在网上找了很多入门教程, 也看了很多的教程, 也能写出...

hell03W ⋅ 2016/03/06 ⋅ 0

关于字符编码的几点整理

计算机专业总是不提这些基础知识,总是很恼火。以下是从维基百科整理的一些基础知识。 编码字符集(CCS:Coded Character Set)是将字符集中每个字符映射到一个非负整数(称作码位),这个字符集...

acmfly ⋅ 2013/02/14 ⋅ 0

python编码问题

python的编码问题一直迷糊得很。向各位请教一下。 1.gbk编码和utf-8编码的字符串进行比较(比如:=,>,<,find)时是比较的unicode吧? 经测试 #encoding:utf-8 pirnt 'abc' in 'abc中国人' #...

IdleMan ⋅ 2012/12/26 ⋅ 3

《PHP扩展学习系列》系列技术文章整理收藏

《PHP扩展学习系列》系列技术文章整理收藏 1PHP扩展之文本处理(二)——PCRE正则表达式语法10——后向引用 http://www.lai18.com/content/321526.html 2PHP扩展之文本处理(二)——PCRE正则...

开元中国2015 ⋅ 2015/07/11 ⋅ 0

记录下emoji的处理

emoji表情是啥就不具体介绍了,主要记住一点就是emoji是使用4字节来表示的,具体的unicode码可以查看这里,所以在显示存储的时候就跟普通的字符大有不同。 项目中原先没有考虑到emoji表情的存...

LCZ777 ⋅ 2016/09/15 ⋅ 0

PHP 基础篇 - PHP 正则官方文档汇总

一、PCRE 正则语法 下面是 PHP 的 PCRE 正则语法(模式语法)相关文档,详情请查阅相关链接: 简介 分隔符 元字符 转义序列(反斜线) Unicode字符属性 锚 句点 字符类(方括号) 可选路径(|) 内...

天秤vs永恒 ⋅ 02/06 ⋅ 0

Linux/Unix工具与正则表达式的POSIX规范

对正则表达式有基本了解的读者,一定不会陌生『d』、『[a-z]+』之类的表达式,前者匹配一个数字字符,后者匹配一个以上的小写英文字母。但是如果你用过vi、grep、awk、sed之类Linux/Unix下的...

skypeGNU1 ⋅ 2016/03/12 ⋅ 0

web开发中遇到的编码问题

声明:以下内容仅为个人理解,但不保证百分百正确,请观者慎重甄辨。 在web开发过程中很容易遇到编码问题,表现形式就是各种的乱码,它们存在的原因有可能因为数据库表的编码与处理程序没有一...

dfwasds ⋅ 2015/01/27 ⋅ 0

Linux/Unix工具与正则表达式的POSIX规范

转载自InfoQ:http://www.infoq.com/cn/news/2011/07/regular-expressions-6-POSIX# 对正则表达式有基本了解的读者,一定不会陌生『d』、『[a-z]+』之类的表达式,前者匹配一个数字字符,后者...

kuSorZ ⋅ 2017/11/22 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

PHP语言系统ZBLOG或许无法重现月光博客的闪耀历史[图]

最近在写博客,希望通过自己努力打造一个优秀的教育类主题博客,名动江湖,但是问题来了,现在写博客还有前途吗?面对强大的自媒体站点围剿,还有信心和可能型吗? 至于程序部分,我选择了P...

原创小博客 ⋅ 10分钟前 ⋅ 0

IntelliJ IDEA 2018.1新特性

工欲善其事必先利其器,如果有一款IDE可以让你更高效地专注于开发以及源码阅读,为什么不试一试? 本文转载自:netty技术内幕 3月27日,jetbrains正式发布期待已久的IntelliJ IDEA 2018.1,再...

Romane ⋅ 36分钟前 ⋅ 0

浅谈设计模式之工厂模式

工厂模式(Factory Pattern)是 Java 中最常用的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。 在工厂模式中,我们在创建对象时不会对客户端暴露创建逻...

佛系程序猿灬 ⋅ 今天 ⋅ 0

Dockerfile基础命令总结

FROM 指定使用的基础base image FROM scratch # 制作base image ,不使用任何基础imageFROM centos # 使用base imageFROM ubuntu:14.04 尽量使用官方的base image,为了安全 LABEL 描述作...

ExtreU ⋅ 昨天 ⋅ 0

存储,对比私有云和公有云的不同

导读 说起公共存储,很难不与后网络公司时代的选择性外包联系起来,但尽管如此,它还是具备着简单和固有的可用性。公共存储的名字听起来也缺乏专有性,很像是把东西直接堆放在那里而不会得到...

问题终结者 ⋅ 昨天 ⋅ 0

C++难点解析之const修饰符

C++难点解析之const修饰符 c++ 相比于其他编程语言,可能是最为难掌握,概念最为复杂的。结合自己平时的C++使用经验,这里将会列举出一些常见的难点并给出相应的解释。 const修饰符 const在c...

jackie8tao ⋅ 昨天 ⋅ 0

聊聊spring cloud netflix的HystrixCommands

序 本文主要研究一下spring cloud netflix的HystrixCommands。 maven <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-clo......

go4it ⋅ 昨天 ⋅ 0

Confluence 6 从其他备份中恢复数据

一般来说,Confluence 数据库可以从 Administration Console 或者 Confluence Setup Wizard 中进行恢复。 如果你在恢复压缩的 XML 备份的时候遇到了问题,你还是可以对整个站点进行恢复的,如...

honeymose ⋅ 昨天 ⋅ 0

myeclipse10 快速搭建spring boot开发环境(入门)

1.创建一个maven的web项目 注意上面标红的部分记得选上 2.创建的maven目录结构,有缺失的目录可以自己建立目录补充 补充后 这时候一个maven的web项目创建完成 3.配置pom.xml配置文件 <proje...

小海bug ⋅ 昨天 ⋅ 0

nginx.conf

=========================================================================== nginx.conf =========================================================================== user nobody; #......

A__17 ⋅ 昨天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部