正则表达式在文本处理中的高级应用与实践
1. 前瞻与后瞻断言
前瞻(Lookahead)允许在不实际匹配某个特定字符串的情况下检查是否可以匹配它。当你想确保一个模式不跟随另一个模式时,可以使用负前瞻。
1.1 正后瞻测试模式
假设要从标准化测试中提取问题并存储到数据库,信息总是跟在类似 “Question #5:” 的编号系统之后,但希望提取问题文本而不包含编号。
const re = /(?<=Question\s#\d{1,3}:\s).+?\./igs;
const str = `
Question #9: The Peloponnesian Wars were fought between __________.
Question #10: A ziggurat is __________.
`;
const questions = str.match(re);
console.log(questions);
// →[
// "The Peloponnesian Wars were fought between __________.",
// "A ziggurat is __________."
// ]
通过正后瞻断言 (?<= ... ) 实现了匹配问题而不包含编号。
正后瞻断言 /(?<=Question\s#\d{1,3}:\s).+\./igs 的详细分析如下:
- (?<=Question\
超级会员免费看
订阅专栏 解锁全文
1255

被折叠的 条评论
为什么被折叠?



