正则表达式学习
基本语法
- 字符匹配
- .: 匹配任意单个字符(除了换行符)。
- a: 匹配字符 a。
- 字符集
- [abc]: 匹配 a、b 或 c 中的任意一个字符。
- [a-z]: 匹配从 a 到 z 范围内的任意一个字符。
- 元字符
- \d: 匹配任意数字,等价于 [0-9]。
- \D: 匹配任意非数字字符。
- \w: 匹配任意字母、数字或下划线字符,等价于 [a-zA-Z0-9_]。
- \W: 匹配任意非字母、数字或下划线字符。
- \s: 匹配任意空白字符(包括空格、制表符等)。
- \S: 匹配任意非空白字符。
- 重复匹配
- *: 匹配前面的字符零次或多次。
- +: 匹配前面的字符一次或多次。
- ?: 匹配前面的字符零次或一次。
- {n}: 精确匹配前面的字符 n 次。
- {n,}: 匹配前面的字符至少 n 次。
- {n,m}: 匹配前面的字符至少 n 次,至多 m 次。
- 位置匹配
- ^: 匹配字符串的开始。
- $: 匹配字符串的结束。
- \b: 匹配单词边界。
- \B: 匹配非单词边界。
- 分组和引用
- (...): 将括号中的内容作为一个组。
- |: 逻辑或,用于匹配多个选项之一。
示例
匹配一个电话号码格式:(\d{3})-(\d{3})-(\d{4})
例如:123-456-7890
匹配一个简单的电子邮件地址:[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+.[a-zA-Z]{2,}
例如:example@example.com
匹配一个URL:https?://[a-zA-Z0-9.-]+.[a-zA-Z]{2,}(/[\w.-])
例如:http://example.com/path
学习资源
在线工具
Regex101: 一个非常好的在线正则表达式测试工具,支持多种正则表达式引擎。
RegExr: 另一个流行的在线正则表达式编辑和测试工具。
教程和书籍
练习网站
HackerRank: 提供正则表达式相关的编程练习。