请先登录

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

推荐答案 测试一下

2.2匹配任何字符 :/s................................ ................................ ................................ .......…

问答题 中等 经典问答问答题

参考答案

正则表达式中的 `/s`(实际应为 `\s`)表示匹配任意空白字符,包括空格( )、制表符(\t)、换行符(\n)、回车符(\r)、换页符(\f)等。它并不匹配任何字符,只匹配空白类字符。题目中“匹配任何字符”显然是一个错误理解。要真正匹配任何字符(包括换行符),通常使用 `[\s\S]`(空白与非空白集合的并集)或 `[^]`(空字符类的否定,等效于任何字符,取决于语言支持)。点号 `.` 可以匹配除换行符以外的任意单个字符,若启用单行模式(`s` 修饰符),则 `.` 也能匹配换行符。因此,解答本题的关键是区分 `\s` 的局限性,并掌握匹配任意字符的多种方法。易错点:误以为 `\s` 包含所有字符;混淆 `/s` 与 `\s` 的写法;忽略点号不匹配换行符这个默认行为。

涉及知识点

  • 正则表达式元字符含义
  • 空白字符匹配范围
  • 任意字符匹配方法
  • 点号与换行符的关系
  • 修饰符(s模式)的作用
← 上一题
登录后反馈错题
下一题 →