今天我来学习正则表达式
1 . * 与 ?
来看最基础的正则符号 ---- * ? ------
* 通配符匹配零个或多个字符
? 通配符匹配文件名中的 0 个或 1 个字符
这里有两个经典的名词 懒惰匹配 和 贪婪匹配 其中涉及两个组合的符号 (.*) 与 (*?.)
(.*) 是贪婪匹配代表尽可能多的匹配字符因此它将h和l之间所有的字符都匹配了出来
(.*?) 是懒惰匹配尽可能匹配少的字符但是要匹配出所有的字符
(.+?) 代表匹配中间字符数量是大于等于1的字符
(.??)这个是匹配重复一次和零次的
其中的数量我们也是可以自己定义的
.{n,m}?代表匹配数量从n到m数量的字符
2 . 正则的基础语法
对于 ^[0-9a-zA-Z_-]+abcdef$
我们怎么来解释呢?
- ^为匹配输入字符串的开始位置。
- [0-9]+匹配多个数字, [0-9] 匹配单个数字,+ 匹配一个或者多个。.
- abc$匹配字母 abc 并以 abc 结尾,$ 为匹配输入字符串的结束位置。
- [0-9a-zA-Z_-]代表由数字小写字母大写字母下划线终止符组成的加号代表由多个字符组成的
- abcdef$匹配字母 abcdef 并以 abcdef 结尾,$ 为匹配输入字符串的结束位置。