GUIDE深度 · Deep dive
分组、贪婪和环视
括号分组会捕获内容;只想分组用 (?:...)。量词默认贪婪,加 ? 变非贪婪。环视 (?=...) 和 (?<=...) 只检查位置,不消耗字符。
分组
(\d+)-(\d+) 捕获两段数字。
(?:ab)+ 只分组不捕获。
环视
a(?=b) 匹配后面是 b 的 a。
(?<=a)b 匹配前面是 a 的 b。
常见问题
贪婪和非贪婪区别?
贪婪尽量多,非贪婪尽量少。
环视会消耗字符吗?
不会;只检查位置。
括号分组会捕获内容;只想分组用 (?:...)。量词默认贪婪,加 ? 变非贪婪。环视 (?=...) 和 (?<=...) 只检查位置,不消耗字符。
(\d+)-(\d+) 捕获两段数字。
(?:ab)+ 只分组不捕获。
a(?=b) 匹配后面是 b 的 a。
(?<=a)b 匹配前面是 a 的 b。
贪婪尽量多,非贪婪尽量少。
不会;只检查位置。