MW211 EXIT

devlog
正規表現/文字列の否定(2)行単位での比較
2014年02月02日
文字列の否定は難しいと述べたが、まずは行にその文字列が含まれるかを
判定する正規表現はわりと簡単にできる。
「^(?!.*文字列).*$」でOK。

先読み((?!)など)の場合、文字列が使えるので、これを利用する。

整理すると以下の通り。

「a」を含まない行。
┌──────────────────────────────────────┐
│^[^a]*$                                                                     │
└──────────────────────────────────────┘

「a」も「b」も含まない行。
┌──────────────────────────────────────┐
│^[^ab]*$                                                                    │
├──────────────────────────────────────┤
│^[^(a|b)]*$                                                                 │
│^[^(ab)]*$                                                                  │
└──────────────────────────────────────┘

「ab」を含まない行。
┌──────────────────────────────────────┐
│^(?!.*ab).*$                                                                │
└──────────────────────────────────────┘
分類:正規表現
正規表現/文字列の否定(1)
2014年02月01日
「ab」とかいう(連続する)文字列を除くという正規表現は実は難しい。

┌──────────────────────────────────────┐
│(ab|cd)                                                                     │
└──────────────────────────────────────┘
上記みたいに、括弧で囲えば文字列として認識してくれるのだから、
さぞ簡単かと思うが、以下のような指定は効かない。
┌──────────────────────────────────────┐
│[^(ab)]                                                                     │
└──────────────────────────────────────┘

以下と同じにみなされてしまう。
┌──────────────────────────────────────┐
│[^ab]                                                                       │
└──────────────────────────────────────┘

では、解決方法は?…難しい。
分類:正規表現
正規表現/括弧閉じ忘れ確認(二文字)
2014年01月31日
括弧の対応関係が合わない行をみつける正規表現。
括弧が二文字で構成されていると結構厄介。

例えば、C言語系における以下のコメント括弧。
┌──────────────────────────────────────┐
│/* コメント */                                                              │
└──────────────────────────────────────┘
二行以上に渡っても書けるが、この際、それは無視。一行のみ対象。

┌──────────────────────────────────────┐
│/\*(?!.*\*/)                                                                │
└──────────────────────────────────────┘
少しややこしい。
分類:正規表現
正規表現/括弧閉じ忘れ確認(一文字)
2014年01月30日
括弧の対応関係が合わない行をみつける正規表現。
┌──────────────────────────────────────┐
│\([^\)]*$                                                                   │
└──────────────────────────────────────┘
括弧が一文字だと簡単にできる。
分類:正規表現
設計/正しい日本語
2014年01月29日
機械的に文字を組み合わせた用語の場合、得てして変な日本語になる場合が多い。

しかし、内部向けの資料の場合、周囲との意思の疎通があれば気にしなくてよいと思う。
そもそも内部向け資料は産業スパイ対策でわざとわかりづらく作るところもあるそうだ。
「かんばん方式」や「あんどん」といった素人にはわかりづらい言葉を使っているのも
そもそもはそういう訳だったと聞く。

だから、多少日本語がおかしくても気にしなくてもいいのではないだろうか。

もちろん、外部向けにはわかりやすい言葉を使わなければならないが。
分類:設計
jQuery/配列の書き方
2014年01月28日
JavaScriptの場合、配列の「a['b']」を「a.b」と書くことができる。
なので、「$(this).height()」を「$(this)['height']()」と書くこともできてしまう。
#単純に「.height」を「['height']」を置換できてしまう
分類:jQuery
jQuery/スクロール領域の縦幅
2014年01月27日
スクロールバーに囲われた領域の…

内部の縦幅(スクロールで隠れている部分も含む)
┌──────────────────────────────────────┐
│$(this).prop('scrollHeight')                                                │
└──────────────────────────────────────┘

外部の縦幅(見えている部分)
┌──────────────────────────────────────┐
│$(this).prop('offsetHeight')                                                │
└──────────────────────────────────────┘
但し、上記はスクロールバー自体の縦幅も含むので
「overflow:scroll;」の場合は、「$(this).prop('scrollHeight')」よりも大きくなる。
分類:jQuery
SVN/管理ファイルを除いてコピー
2014年01月26日
SubVersionでフォルダを管理していると、管理ファイルがこっそりつくられていて
これをまるごと他のフォルダにコピーなんかした日には、その管理ファイルの
整合性がおかしくなってしまって、めちゃくなってしまったりする。

ということで、ファイルを一つ一つコピーしてしまうのが安全だが、
複雑なディレクトリ構成でファイルがいっぱいだと、コピーがめんどくさい。

DIRコマンドやエディタの編集機能を使えばコピーバッチファイルを作成することも
できるのだが、なんとか簡単にできないものか。。。

などと思っていたら、ROBOCOPYを使えば簡単にできてしまうのであった。
┌──────────────────────────────────────┐
│ROBOCOPY /MIR /XA:SH 複写元 複写先                                          │
└──────────────────────────────────────┘
「/XA:H」で隠しファイルを除外すればいいのだ。
分類:SVN
PHP/isset()の位置
2014年01月25日
isset()との複合条件の場合、ないかもしれないものを条件にしてしまっていいのか?
ふと不安に思ってしまうことがある。

一旦、isset()で存在を確認してから、改めてそれを判定した方が安全なのではないか?
という疑問だ。

┌──────────────────────────────────────┐
│if ((isset($a)) && ($a == 1)) {                                             │
└──────────────────────────────────────┘
「$a」が未定義の場合、上記は問題ないけど、下記はエラーとなってしまう。
┌──────────────────────────────────────┐
│if (($a == 1) && (isset($a))) {                                              │
└──────────────────────────────────────┘

一般的にAND条件は、左から判定していき、
偽がみつかった時点で判定を打ち切る。

つまり前者は、下記のイメージと同じになる。
┌──────────────────────────────────────┐
│if (isset($a)) {                                                            │
│    if ($a == 1) {                                                          │
└──────────────────────────────────────┘

ということで、順番さえ間違えなければ大丈夫。
分類:PHP
IT用語集(1)
2014年01月24日
Q.「スケールアップ」と「スケールアウト」の違いは?

A.以下の通り
    「スケールアップ」…質を上げる
    「スケールアウト」…数を上げる
分類:IT全般
前へ 1 … 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 … 156 次へ