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.

挑 出 结 构 元 字 符 , 阅 读 正 则 表 达 式 就 是 如 坐 春 风 ( 注 : 当 然 , 有 时 候 风 力 强 劲 , 但 绝 对 不 会把 你 刮 跑 。)有 一 个 结 构 元 字 符 是 竖 直 条 , 表 示 侯 选 项 :/Frodo|Pippin|Merry|Sam/ ( 译 注 : 电 影 “ 魔 戒 ” 里 Shire 的 四 个 小 矮 人 )这 意 味 着 这 些 字 串 的 任 何 一 个 都 会 触 发 匹 配 ; 这 个 内 容 在 本 章 稍 后 的 “ 侯 选 项 ” 节 描 述 。 并 且我 们 还 会 在 那 节 后 面 的 “ 捕 获 和 集 群 ” 节 里 告 诉 你 如 何 使 用 圆 括 弧 , 把 你 的 模 式 各 个 部 分 括 起来 分 组 :/(Frodo|Drogo|Bilbo) Baggins/ ( 译 注 :Bilbo Baggins 是 Frodo 的 叔 叔 , 老 一 辈 魔戒 承 载 者 。)或 者 甚 至 :/(Frod|Drog|Bilb)o Baggins/你 看 到 的 其 他 的 东 西 是 我 们 称 之 为 量 词 的 东 西 , 它 表 示 在 一 行 里 面 前 面 匹 配 的 东 西 应 该 匹 配几 个 。 量 词 是 这 些 东 西 :* + ? *? {3} {2,5}不 过 你 永 远 不 会 看 到 它 们 这 样 独 立 地 存 在 。 量 词 只 有 附 着 在 原 子 后 面 才 有 意 义 —— 也 就 是说 , 断 言 那 些 有 宽 度 的 ( 注 : 量 词 有 点 象 第 四 章 , 语 句 和 声 明 , 里 的 语 句 修 饰 词 , 也 是 只 能附 着 在 单 个 语 句 后 面 。 给 一 个 零 宽 度 的 断 言 附 着 量 词 就 象 试 图 给 一 个 声 明 语 句 附 着 一 个while 修 饰 词 一 样 —— 两 种 做 法 都 和 你 跟 药 剂 师 要 一 斤 光 子 一 样 无 聊 。 药 剂 师 只 卖 原 子什 么 的 。) 量 词 只 附 着 在 前 一 个 原 子 上 , 从 我 们 人 类 的 眼 光 来 看 , 这 通 常 量 化 为 只 有 一 个 字符 。 如 果 你 想 匹 配 一 行 里 的 三 个 “bar” 的 副 本 , 你 得 用 圆 括 弧 把 “bar” 的 三 个 独 立 的 字 符 组合 成 一 个 “ 分 子 ”, 象 这 样 :/(bar){3}/这 样 将 和 “barbarbar” 匹 配 。 如 果 你 用 的 是 /bar{3}/, 那 么 匹 配 的 是 “barrr“ —— 这 东西 表 明 你 是 苏 格 兰 人 ( 译 注 : 爱 尔 兰 人 说 英 文 的 时 候 尾 音 比 较 长 ), 而 不 是 barbarbar 人 。( 话 又 说 回 来 , 也 可 能 不 是 。 我 们 有 些 很 喜 欢 的 元 字 符 就 是 爱 尔 兰 人 。) 有 关 量 词 的 更 多 东西 , 参 阅 后 面 的 “ 量 词 ”。你 已 经 看 到 了 一 些 继 承 了 正 则 表 达 式 的 野 兽 , 现 在 一 定 迫 不 及 待 地 想 驯 服 它 们 。 不 过 , 在 我们 开 始 认 真 地 讨 论 正 则 表 达 式 之 前 , 我 们 需 要 先 向 回 追 溯 一 些 然 后 再 谈 谈 使 用 正 则 表 达 式 的模 式 匹 配 操 作 符 。( 并 且 如 果 你 在 学 习 过 程 中 碰 巧 多 遇 到 几 只 “ 野 兽 ”, 那 么 不 妨 给 我 们 的 学习 向 导 留 一 条 不 错 的 技 巧 。)147

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

Saved successfully!

Ooh no, something went wrong!