← eetop.cn_Perl语言入门(第四版小骆驼书)

推荐答案 测试一下

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作用
  • 跨行文本匹配方法
  • 不同语言正则差异
← 上一题
登录后反馈错题
下一题 →