常用正则说明

常用正则说明

https://mp.weixin.qq.com/s/0eX1Aa3mLbRgf-duvIQU3A

正则表达式,又称规则表达式。(英语:Regular Expression,在代码中常简写为regex、regexp或RE),计算机科学的一个概念。正则表达式通常被用来检索、替换那些符合某个模式(规则)的文本…

正则实例

正则 说明 实例
身份证 /^(\d{18,18}|\d{15,15}|\d{17,17}x)$/  
手机号 /^0?(13|14|15|17|18|19)[0-9]{9}$/  
银行卡 /^\d{16}|\d{19}$/  
Email /^\w[-\w.+]*@([A-Za-z0-9][-A-Za-z0-9]+\.)+[A-Za-z]{2,14}$/  
网址 /^((https|http|ftp|rtsp|mms)?:\/\/)[^\s]+$/  
电话号码 /^[0-9-()()]{7,18}$/  
日期 /^\d{4}(\-|\/|.)\d{1,2}\1\d{1,2}$/ 2017-02-51
无特殊字符的用户名 /^[A-Za-z0-9_\-\u4e00-\u9fa5]+$/ hello@# 不通过

技巧

后向引用

$str='<b>abc</b>';
Pattern= '/<b>(.*)<\/b>/';
preg_replace($pattern, '\\1', $str); 

贪婪模式

    用.*? 取消贪婪模式
    /<b>.*?<\/b>/

    用 U取消贪婪
    '/<b>.*<\/b>/U'

常用函数

preg_match(),
preg_match_all(),
Preg_replace(),  //替换
preg_split()  //分割

中文匹配

UTF-8汉字编码范围是0x4e00-0x9fa5,
ANSI(gb2312)环境下,0xb0-0xf7,0xa1-0xfe

UTF-8要使用u模式修正符使模式字符串被当成UTF-8,
ANSI(gb2312)环境下,要使用chr将Asc码转换为字符

$str='中文'Pattern ='/[\xt{4e001-\x{t9fa5}]+/u'; 

匹配 img 的 src 值

$str='<img alt="测试" id="aaa"  src="aaa.jpg" />';
$pattern='/<img. *?src="(.*?).*?\/?>/i'  // .*? 为取消贪婪
Preg_match( $Pattern, $str, $match);

修正模式

i 不区分大小写
m 将字符串的每一行分别进行匹配
e 对匹配的结果做PHP语法处理
s 将字符串视为单行,换行符作为普通字符.
U 取消贪婪模式
x 将模式中的空白忽略.
A 强制仅从目标字符串的开头开始匹配.
D 模式中的美元元字符仅匹配目标字符串的结尾.
u utf-8中文匹配

正则

元字符 描述
. 句号匹配任意单个字符除了换行符.
? 0或1
* >=0
+ >=1
[ ] 字符种类. 匹配方括号内的任意字符.
[^ ] 否定的字符种类. 匹配除了方括号里的任意字符
{n,m} 匹配num个大括号之前的字符 (n <= num <= m).
(xyz) 字符集, 匹配与 xyz 完全相等的字符串.
| 或运算符,匹配符号前或后的字符.
\ 转义字符,用于匹配一些保留的字符 [ ] ( ) { } . * + ? ^ $ \ |
^ 从开始行开始匹配.
$ 从末端开始匹配.
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/112720.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • linux下重启oracle的方法

    linux下重启oracle的方法

    2021年9月14日
    51
  • Pytest(17)运行未提交的git(pytest-picked)

    Pytest(17)运行未提交的git(pytest-picked)前言我们每天写完自动化用例后都会提交到git仓库,随着用例的增多,为了保证仓库代码的干净,当有用例新增的时候,我们希望只运行新增的未提交git仓库的用例。pytest-picked插件可以

    2022年7月30日
    5
  • sftp使用方法_sftp服务

    sftp使用方法_sftp服务参考: https://baike.baidu.com/item/sftp参考:https://www.jianshu.com/p/64d571913185    要谈sftp(SSHFileTransferProtocol),首先要谈ftp(FileTransferProtocol),大家都知道ftp是文件传输协议,它基于tcp协议,可以用来发送文件。刚开始学web开发的时候,接…

    2022年10月7日
    2
  • java xor_java 简单xor加密[通俗易懂]

    java xor_java 简单xor加密[通俗易懂]java端加密文件packageenc;importjava.io.FileInputStream;importjava.io.FileOutputStream;importjava.io.IOException;publicclassEnc{publicvoidencryptFile(){FileInputStreamin=null;FileOutputStreamou…

    2022年7月16日
    17
  • Origin绘制上面和右边边框

    Origin绘制上面和右边边框如下面两个图,是绘制前后的对比图,可以发现多了上面和右边的边框,且边框无刻度。操作流程1。双击坐标轴。2。双击top和LineandTicks3。做如下操作4。右侧同理最终得到我们需要的图形。

    2022年5月20日
    406
  • 小鹤双拼尝试

    小鹤双拼尝试26个英文字母除了a,o,e,i,u,v(代表ü,下同)之外都被用作声母,而除了这20个声母之外还有3个声母分别为双字母的zh,ch,sh,汉字中绝大部分字的读音都是声母加韵母组成的。而韵母中,除了上述提到的六个字母,其余韵母都是由两个或三个字母组成。小鹤双拼编码方案:第一个字母表示声母,第二字母表示韵母,没有声母时用零声母代替单字母声母韵母键位不变,就意味着26个字母都是和它本来的音相同,比较特殊的就是v,i,u三个(它们也可以拼成yu,yi,wu),当他们被第一个按下时,会代表声母zh,ch,sh

    2022年6月29日
    20

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号