正则表达式零基础学习

我学习正则表达式 大概用了 一个下午,准备让你们 两个小时学会。

 如果 是计算机毕业的 学过正则文法,机器语言的。并且上课好好听的作业没有抄袭别人的。学习正则基础篇的 估计用不了两个小时。耐心的写几个。 估计就没啥问题了。

这次 直说 基础学习。不说 什么概念。基础学会了 感觉有意思了 在看看《精通正则表达式(第三版)》.(美) 网上有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天的  用上面的知识都是可以完成的 

 感悟吧  写正则就是想  庖丁解牛  你要看到他的骨架 而不是真身。想想都是什么构成的 规则是什么  最多的可能出现的场景。 然后 一一去匹配他。自己学会之后 写正则会上瘾的。 

还有就是 我不打算写进阶 高级篇  网上 已经很多 资料了  挺简单的。没时间的话 也不用看《精通正则表达式(第三版)》 这个书  我就是无意间看到了  就像一个酒鬼看见一个新酒 想上去喝两口 一样的道理。(语文从来没有及格过)









  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
对于 Python 正则表达式零基础,我可以给你一些简单的介绍和示例。 首先,正则表达式是一种用来匹配和操作字符串的强大工具。它可以帮助我们在文本中搜索、替换、分割等操作,使用的时候需要导入 re 模块。 下面是一个简单的示例代码,它展示了如何使用正则表达式在字符串中查找特定的模式: ```python import re # 定义一个字符串 string = "Hello, world! 2021 is here." # 定义一个简单的正则表达式模式,查找所有的小写字母 pattern = r"[a-z]" # 使用 findall() 方法查找所有匹配的结果 result = re.findall(pattern, string) # 打印结果 print(result) # ['e', 'l', 'l', 'o', 'w', 'o', 'r', 'l', 'd', 'i', 's', 'h', 'e', 'r', 'e'] ``` 在上面的代码中,我们使用了 `re.findall()` 方法来查找字符串中所有匹配模式的结果。在这个例子中,我们定义了一个简单的正则表达式模式 `[a-z]`,它会匹配所有的小写字母。然后可以通过打印 `result` 来查看找到的结果。 除了 `findall()` 方法,正则表达式还有其他常用的方法,比如 `search()`、`match()`、`sub()` 等。你可以根据具体的需求选择合适的方法来使用。 当然,正则表达式的语法非常丰富和复杂,上面只是一个简单的示例。如果你想深入学习正则表达式,可以参考 Python 官方文档中有关 re 模块的详细说明,或者查看一些专门的正则表达式教程和资料。希望对你有所帮助!如果有其他问题,请随时提问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值