正则表达式零基础学习
来源:互联网 发布:下载淘宝网2017新版本 编辑:程序博客网 时间:2024/04/29 15:17
我学习正则表达式 大概用了 一个下午,准备让你们 两个小时学会。
如果 是计算机毕业的 学过正则文法,机器语言的。并且上课好好听的作业没有抄袭别人的。学习正则基础篇的 估计用不了两个小时。耐心的写几个。 估计就没啥问题了。
这次 直说 基础学习。不说 什么概念。基础学会了 感觉有意思了 在看看《精通正则表达式(第三版)》.(美) 网上有pdf的。或者自己百度百度 谷歌谷歌。深入的学习。不说了开始吧。 == 主要针对零基础的。有基础的就算了。
[0-9] 是个区间 就跟 高三数学里面的 区间[0-9] 一样 只是 他表示的都是 Z* 正整数 (我学完 JS 正则 之后 就感觉 万事万物都是想通的);
* 是个元字符 零个或者多个 就是 用数学的 就是 0到正无穷多个
+ 是个元字符 一个或者多个 数学里面是 1到正无穷
.是个元字符 代表任意东西
[] 里面 可以是枚举 比如 我只需要 124 就可以这样写 [124] 如果你是连续的 比如 12345678 可以写为 [1-8]; - 表示 是个区间 这个就是个军火库 你想要什么 里面你就放什么
[^] 取反 就像 二进制的 ^1 一样 取非
{} 是个区间符号 正则里面的区间 {1,3} 表示 数学的区间就是 [1,3]; 都是闭区间,{x,} 表示 x到正无穷 包含X X 代表正整数,{10} 就是代表 一定要有10个;
现在写一个 1234567890 的 正则表达式 条件 就是 一个 10位的 正整数 可以这样写 [0-9]{10}; 数字的位数 不确定 可能一个数字都没有 [0-9]*,至少 只有一个 [0-9]+ 或者 [0-9]{1,};
格式化一个时间吧 比如 现在比较流行的 时间 格式 2015.2.2 现在 你必须格式化成 这样样子 没有学正则之前 你肯定想的 用 DateFormat 去格式化 直接 yyyy.M.d 这样子 但是 你这样字格式化如果 是 2015.12.12 就会格式化 成 2015.2.2 ,明显 是不对的 。其实 换个思考 你也替换下 你先应该可以写出来的是 用 testStr.replaceAll(".0", "");
这样 你会发现 会有问题 因为 .可以 跟任何的字符匹配 这个时候 你需要转义 \\. 就会转移成 真正的. 转义的知识 跟所有的程序中转义都是一样的。
应该写成 testStr.replaceAll("\\.0", ""); 就OK了 。
以上就是规则 跟。基础的 并没有讲? 涉及到问号 之后 就会有 懒惰模式 跟贪婪模式 只别 先把基础的看会吧 再去看这个吧。
留几个作业吧, 这东西 要多用 我是看了一个下午 但是 我给自己布置作业写了两天。 开发中碰见的问题 尽量自己用正则解决 一个月就差不多了。
字符串 2015-12-10 09:33:00.0 只保留年月日 使用正则。 \\s(\\d{2}:){2}\\d{2}\\.\\d$ 这个是答案 但是你看不懂。 这些 你要是都没有学会 就不要查 这个正则是咋写出来的
还有一个就是匹配 IP 地址的 比如 192.168.1.1 自己想想 IP 地址的规则 写吧,正则 没有什么 简繁之称 自己能看懂,别人能看懂。能解决问题 就是好正则。 这不是我说的。《精通正则表达式(第三版)》的作者说的。
这些都写完之后 可以写写时间的 考虑 间隔符 年月日 - . 闰年 二月 30天的 31天的 用上面的知识都是可以完成的
感悟吧 写正则就是想 庖丁解牛 你要看到他的骨架 而不是真身。想想都是什么构成的 规则是什么 最多的可能出现的场景。 然后 一一去匹配他。自己学会之后 写正则会上瘾的。
还有就是 我不打算写进阶 高级篇 网上 已经很多 资料了 挺简单的。没时间的话 也不用看《精通正则表达式(第三版)》 这个书 我就是无意间看到了 就像一个酒鬼看见一个新酒 想上去喝两口 一样的道理。(语文从来没有及格过)
- 正则表达式零基础学习
- 零基础正则表达式学习
- Matlab 正则表达式零基础起步教程
- Matlab 正则表达式零基础起步教程
- Matlab 正则表达式零基础起步教程
- 正则表达式零基础入门-正则表达式口诀
- 正则表达式学习基础
- 正则表达式基础学习
- 《零基础入门学习Python》学习过程笔记【57正则表达式】
- 正则表达式学习记录-零宽断言
- JAVASCRIPT 正则表达式学习-->基础与零宽断言(转自司徒正美)
- 【零基础学习PHP 五】正则表达式在php中的使用
- Shell学习---正则表达式基础
- java 正则表达式基础学习
- Java基础学习正则表达式
- 学习笔记:基础正则表达式
- android 正则表达式基础学习
- python基础学习-正则表达式
- @Autowired 和 @Resource 区别
- $_SERVER中常用各值说明
- maltab中读取与写入文件
- 如何用JQuery处理select标签
- Android性能优化--小小攻城狮的成长之路
- 正则表达式零基础学习
- Android构建一个通用的WebView(二):自定义的错误页面、缓存数据,离线浏览
- 已超过传入消息(65536)的最大消息大小配额。若要增加配额,请使用相应绑定元素上的 MaxReceivedMessageSize 属性。
- <Java> 获取当前调用函数, 如同C++中的__FUNC__, __FILE__, __LINE__
- XX游戏R3层反调试 初探
- 最小生成树算法
- error LNK2038: 检测到“_MSC_VER”的不匹配项问题
- 一页纸项目管理整理
- 第一章 准备工作、安装时的问题、基本命令