13.07.2015 Views

Perl 语言编程 - Linux教程

Perl 语言编程 - Linux教程

Perl 语言编程 - Linux教程

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

点 元 字 符 经 常 和 量 词 一 起 使 用 。.* 匹 配 尽 可 能 多 的 字 符 , 而 .*? 匹 配 尽 可 能 少 的 字 符 。 不过 有 时 候 它 不 用 量 词 而 是 自 己 解 决 长 度 问 题 : /(..):(..):(..)/ 匹 配 三 个 用 冒 号 分 隔 的 域 ,每 个 域 两 个 字 符 长 。如 果 你 在 一 个 use utf8 用 法 的 词 法 范 围 里 编 译 的 模 式 里 使 用 一 个 点 , 那 么 它 就 匹 配 任 何Unicode 字 符 。( 你 可 能 不 需 要 用 use utf8, 不 过 偶 然 还 是 会 发 生 的 , 在 你 阅 读 到 这 里的 时 候 你 可 能 不 需 要 这 个 用 法 。)use utf8;use charnames qw/:full/;%BWV[887] = "G\N{MUSIC SHARP SIGN} minor";($note, $black, $mode) = $BWV[886] =~ /^([A-G])(.)\s+(\S+)/;print "That's lookin' sharp!\n" if $black eq chr(9839);元 符 号 \X 在 更 广 的 概 念 上 匹 配 字 符 。 它 实 际 上 是 匹 配 一 个 由 一 个 或 多 个 Unicode 字 符组 成 的 字 串 , 这 个 字 串 就 是 所 谓 的 " 组 合 字 符 序 列 "。 这 样 的 序 列 包 括 一 个 基 本 字 符 和 后 面 跟着 任 意 个 " 标 志 " 字 符 ( 象 变 音 符 和 分 音 符 那 样 的 区 分 标 志 ) 一 起 组 成 一 个 逻 辑 单 元 。\X 实际 上 等 效 于 (?:\PM\pM*)。 这 样 做 允 许 匹 配 一 个 逻 辑 字 符 , 即 使 这 几 个 字 符 实 际 上 是 由 几个 独 立 的 字 符 组 成 的 也 行 。 如 果 匹 配 任 意 组 合 字 符 , 那 么 在 /\X/ 里 匹 配 的 长 度 将 超 过 一 个字 符 长 。( 而 且 这 里 的 字 符 长 度 和 字 节 长 度 没 有 什 么 关 系 )。如 果 你 在 使 用 Unicode 并 且 真 的 想 获 取 单 字 节 而 不 是 单 字 符 , 那 么 你 可 以 使 用 \C 元 字符 。 它 将 总 是 匹 配 一 个 字 节 ( 具 体 说 , 就 是 一 个 C 语 言 的 char 类 型 ), 而 不 管 是 否 会 与你 的 Unicode 字 符 流 步 调 失 调 。 参 阅 第 十 五 章 里 关 于 做 这 些 事 情 时 合 适 的 警 告 。5.4 字 符 表在 模 式 匹 配 里 , 你 可 以 匹 配 任 意 字 符 , 不 管 它 们 有 没 有 特 殊 性 质 。 有 四 种 声 明 字 符 表 的 方 法( 译 注 : 孔 乙 己 ?:)。 你 可 以 按 照 传 统 的 方 法 声 明 字 符 集 —— 用 方 括 弧 和 枚 举 可 能 的 字 符 ,或 者 或 者 你 可 以 使 用 三 种 记 忆 法 中 的 任 意 一 种 : 经 典 <strong>Perl</strong> 表 , 新 <strong>Perl</strong>Unicode 属 性 , 或者 标 准 POSIX 表 。 这 些 缩 写 均 只 匹 配 其 字 符 集 中 的 一 个 字 符 。 你 可 以 量 化 它 们 , 使 它 们可 以 匹 配 更 多 的 字 符 , 比 如 \d+ 匹 配 一 个 或 者 多 个 数 字 。( 一 个 比 较 容 易 犯 的 错 误 是 认 为\w 匹 配 一 个 字 。 用 \w+ 匹 配 一 个 字 。)5.4.1 客 户 化 字 符 表172

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!