詳説正規表現第三版の59pに関する質問です。
Jeffsという固有名詞にアポロストロフィをつける、つまり置換する方法として固有名詞のうちsを除いたJeffを消費し、sを先読みすることで消費しないやり方を解説しているのですが、
s/\bJeff(?=s\b)/Jeff'/g
> **この場面で先読みを使う唯一のメリットは、他の方法ではエラーにならない条件でも、正規表現全体を不成功にできることである。**言い換えれば、「Jeff」だけにマッチするようなふりをして、「Jeffs」全体をチェックできることだ。 この引用のうち太字の部分の意味がさっぱり理解できません。sを先読みにすることで、sが消費されないことは分かるのですが、**他の方法でエラーにならない条件、正規表現全体を不成功にできる、**とはいったいどういう意味なのでしょうか。
質問からどんな正規表現を使っているか推測できる方も多いのだろうと思いますが、正規表現そのものも(本件に関係する範囲に短縮して)質問に記載すべきと思います。そのほうがより多くの人の参考としてわかりやすくないですか?
コンピュータ関係の翻訳書では特によくあることですが、訳者もよく理解していないまま日本語にしていることがあります。そういう箇所は読者にも理解できません。原著の該当箇所を読んでみては (嫌味とかではなく、私はそういう理由で訳書と原書と両方買う経験をよくするので) 。
>>KSwordOfHasteさん ご返答有難うございます。編集いたしました。
>>ikedasさん ご返答有難うございます。洋書の翻訳をじっくり読むのは、初めてだったのですが、訳書にはそういういい加減なところもあるのですね。勉強になります。
引用は正確でしょうか。Perlの式から問題の文までの間の文章もとばさず引用して下さい (図はとばしてもいいです)。また式も、本に書いてある通りか確認して下さい。
ご返答とご指摘有難うございます。式に間違いがありました。修正します。
回答1件
あなたの回答
tips
プレビュー