最終更新: 2010-05-19T16:21+0900
348 nobodyさん 2008/07/27(日) 01:11:32 ID:sEx2Pn85 質問させてください。 サクラエディタに鬼車5.9.1を搭載して正規表現の勉強をしているのですが、手元にある詳説正規表現には (<)?\w+(?(1)>) このような例があり、<があれば>のマッチを試みる?ということができるみたいです。 ただ、鬼車はこの表現をサポートしていないみたいです。 http://www.geocities.jp/kosako3/oniguruma/doc/RE.ja.txt 同様のことを鬼車でも実現する方法ってあるのでしょうか?
鬼車は条件付き選択をサポートしていないのが玉に瑕だと、以前から思っている。なんとかできないかと上の例で考えてみたら、こうなった。
(<|)\w+(\1{100}|>)
せこい。姑息だ。100ってなんだよ。こんなの( <abc<<<...(94個の<を省略)...<<<>
)にもマッチするじゃねーか。
最終更新: 2011-04-12T20:54+0900
Googleの検索は英字の大文字小文字、ひらがなカタカナの区別だけでなく、カタカナ英語と本物の英単語の違いも無視して検索結果を表示してくれるんだけど、キャッシュのハイライトがそれに追随できていないのが残念。「このページへのリンクにだけ含まれているキーワード」っていうのは要するに「このページの中にこのキーワードは発見できませんでした」っていうことなんだと、うすうす気付いてきた。多いんだもん最近。
キャッシュを使うのは、オリジナルがなくなってる場合、オリジナルの反応が遅い場合、ページが長大でマッチ箇所を見つけられない場合。ハイライトは 3番目のときに役立つ。検索語にジャンプするツールバーボタンがあいまい検索の結果からマッチ箇所を見つけられないのは仕方ないかな、と思えるけど、キャッシュは検索の主体(google)が返してるものだからハイライトされてないとがっかりだよ。
最終更新: 2010-05-29T12:31+0900
Scalaの match-caseが Rubyの case-whenと同等のものにしか見えなくて、Cの switch-case的な使い方しか思いつかない俺は手続き脳?
いいタイミングでパターンマッチの章に到着。途中まで読んだ。caseに書けるパターンの種類は「定数パターン(Cなどでおなじみ)」「ワイルドカードパターン(いわゆる default)」「変数パターン(名前付きワイルドカード。変数はコンストラクターパターンの構成要素を束縛(?)したり、型付きパターンの一部として使ったりもする。必ず?小文字で始める)」「コンストラクターパターン」「シーケンスパターン」「タプルパターン」「型付きパターン(型テスト+型キャスト)」があり、「パターンガード(パターンで表現できない追加の条件)」が付けられる。※(かっこ)内は個人的な解釈であって引用ではない。
コンストラクターパターンに使えるのはケースクラスだけだと思う(試してないけど)。ケースクラスのイメージは const struct。コンストラクタに与えられた全引数を constメンバとして持つ。だからコンストラクタの逆、match式に与えられたオブジェクトを構成要素に分解してマッチング(深いパターンマッチ、らしい)を行えるんじゃないかと。
パターンを書けるのは caseだけではない。変数定義や for式にも書ける。caseが書けるのは match-caseだけではない。部分関数として caseの並びを書ける。コンストラクターパターンに使えるのはケースクラスだけではない。24章で説明される extractors(抽出子)を使えば一般のクラスも使用できる(らしい)。
? 必ずかどうかは不明。書かれていたのは、1.大文字で始まる定数名はそのままその名前が定数パターン。2.小文字の名前は変数パターン。3.小文字で始まる定数名が存在していてもその名前は変数パターン。3.`バッククォート`で囲った小文字の名前は例外的に定数パターン。=>大文字で始まる名前があって、その名前の定数が存在しないときは?