正则表达式测试
实时测试正则表达式,高亮匹配结果、展示捕获组与常用标志。
1 个匹配
正则表达式是描述一组字符串的模式,用于在几乎所有编程语言和文本编辑器中搜索、校验和提取文本。
标志位会改变匹配行为:g 找全部匹配,i 忽略大小写,m 让 ^ 和 $ 匹配行边界,s 让 . 匹配换行。标志选错是'匹配不到'的常见原因。
g 标志查找全部匹配;不加则只返回第一个。i 标志让匹配忽略大小写,解析日志时通常需要它。
常见用途
- 在把表单上线前,校验邮箱、手机号或证件号的格式。
- 用捕获组从日志里提取所有 URL 或日期,再把同一模式直接搬进代码。
常见问题
- 什么是灾难性回溯?
- (a+)+ 这类嵌套量词会让引擎尝试指数级路径。改用更精确的字符类或原子化写法可以避免。
- 为什么 .* 不能跨行匹配?
- 默认 '.' 不包含换行符。加上 s(dotAll)标志后,它就能匹配包括换行在内的任意字符。
- match 和 test 有什么区别?
- test() 返回布尔值表示是否匹配;match() 返回匹配到的字符串。只需要判断有无时,test() 更快。
- g 标志是做什么的?
- 全局标志返回所有匹配,不只是第一个。不加它你只能看到最左边的匹配。