推荐答案
测试一下
题目
5.2匹配多行文本 ................................ ................................ ................................ ..........…
参考答案与知识点
参考答案
题目要求匹配多行文本,核心考点是正则表达式中的多行模式与点号匹配换行符。在正则表达式中,默认情况下点号不匹配换行符(\n),且^和$锚点仅匹配整个字符串的开头和结尾。若要匹配多行文本,需使用修饰符:
- re.MULTILINE(或(?m)):使^匹配每一行的开头,$匹配每一行的结尾。
- re.DOTALL(或(?s)):使点号匹配包括换行符在内的任意字符。
- 组合使用(?ms)可同时启用多行和单行模式。
示例:匹配以数字开头、跨行的字符串/^\d+.*?end$/ms,可正确匹配多行内容。
易错点:混淆多行模式与换行匹配,未开启DOTALL时点号无法跨行;使用^和$时需注意修饰符作用范围;在Python中re.compile需传入re.MULTILINE|re.DOTALL;在JavaScript中缺少DOTALL支持(需用[\\s\\S]替代点号)。
实际应用:日志分析、配置文件解析、代码注释匹配等场景均需多行匹配。
涉及知识点
- 正则表达式修饰符
- 多行模式^和$锚点
- 点号不匹配换行符
- re.DOTALL作用
- 跨行文本匹配方法
- 不同语言正则差异