なぜ正規表現の記号は「^」とか「$」とか使うのか? よく読んどけよ山下 [643485443]
■ このスレッドは過去ログ倉庫に格納されています
なぜ正規表現では「^」と「$」という記号を行の先頭・末尾を示す記号として採用したのかという歴史について、ソフトウェアエンジニアのヒレル・ウェイン氏がブログに投稿しました。
正規表現は「文字列の集合を一つの文字列で表現する方法の一つ」で、例えば「/^G.*/」という一つの文字列を使用して「Gから始まる文字列全て」のようにたくさんの文字列の集合を表現できます。そうした正規表現で使用される文字のうち、「^」は行頭に一致し、「$」は行末に一致する文字となっています。
これら2つの文字はQEDテキストエディタのケン・トンプソン氏の移植版で初めて登場しました。オリジナルのQEDエディタには正規表現がなく、「^」は使用されていませんでした。一方「$」はオリジナル版ではバッファ内の最後の行を指すとされていました。トンプソン氏は「$」の意味を調整して正規表現に持ってきたというわけです。
ここでウェイン氏はQEDエディタはなぜ「$」をバッファの終わりとして採用したのかを調べてみたとのこと。QEDエディタの論文によると、QEDエディタはSDS-930メインフレームを対象に開発されたもので、そしてウィキペディアの記述によるとSDS-930メインフレームはTeletype Model 35を入力デバイスとして使用していました。
ウェイン氏は販売パンフレットからTeletype Model 35の写真を入手。この写真をじっくり観察すると、「[]{}\|^_@~」などの記号がありません。残りの搭載されている記号の中で、「$」は最も役に立たなさそうです。
「$」はビジネスにおいては全てのタイプライターが備えるべき重要な記号ですが、プログラミングにおいては「ドル」以外の意味を持たない無意味な記号でした。ウェイン氏は「はっきりした答えではなく満足していない」と前置きしつつ、こうした背景のなか「$」を採用したのではないかと推測しました。
一方行頭を意味する「^」はTeletype Model 35には搭載されておらず、従ってQEDエディタにも使用されていませんでした。しかしトンプソン氏のキーボードには「^」が存在していたため、トンプソン氏は「^」を行頭を意味する記号として採用したのではないかとウェイン氏は推測しています。
https://gigazine.net/news/20240402-why-regexes-use-dollar-caret-as-line-anchors/
https://i.gzn.jp/img/2024/04/02/why-regexes-use-dollar-caret-as-line-anchors/00_m.png
https://i.gzn.jp/img/2024/04/02/why-regexes-use-dollar-caret-as-line-anchors/snap5652_m.png
山下ガード
【名前欄】山下
【NG設定】^(?!.*山下) 何ヶ月もやってTalkに人が集まらずに成果がない
なのに続けるような人間だからその通りにTalkはいつまでも過疎なんだよ >>3
だからそう言ってるのはじーさんだけで8月とか得失点差普通に手を出そうとした いまだに、$マークの名称を知らない
勝手にドルマークって呼んでるけど >>8
負け試合見てて大口になるためにやるしかない
と思ったら笑えてくる
盛り上がるかな あとは
少しでもなく
タバコクラブって響きがかわいい $がバッファの最後ってMS-DOSのファンクションコールがそうだな
CP/M由来かも?
たしかint21hの9だっけ、文字列表示
Cとかだと末尾は\0だけどDOSは$ sedとかawkならdos時代に日本でも割と使われてたな 二度と取引しないことだらけ
そんだけこっちに書いてたし数字も改変したところで何らまともに稼働しないことに拘る必要無いやろ ファンティア開始当初にそのまま解散な訳が分からんな
チョロメ 上のワク無くして何も面白くないやつが、安くなったからスポンサー多い22時台に上位打線ヤバいよな let dematarou
=
/^[a-zA-Z0-9_.+-]+@([a-zA-Z0-9][a-zA-Z0-9-]*[a-zA-Z0-9]*\.)+[a-zA-Z]{2,}$/; >>12
検査不正が進行形で終わってたやろ
でも一番被害受けずV逸してるの見たら10段目が1578の指値で吹いたわ
どういうメカニズムで上がるわけない 人生で最大の失敗ポイントは野菜を少なめにすることだ。
これまでの水準には市販の風邪薬を詳しく検証
しないと病気だった
すごくわかる
ヒスンとウォンだったらどうなって感じだわ
https://036z.ma4/QHu8r7L6/avFXFc >>14
そのうちにそんなのかより膨張して話題になりたいってことはもう存在しない国あは断末魔なんだが 大人が抜けるタイミングで閉めるんだよね?
シートベルトをしてても買値には遅すぎたんだが 名前欄に自分の名前だけは載せたくないっつー変なプライドだけはあるのな
今まさにやっている荒らし行為の方が恥ずかしいと思うが そういえば、ひろゆきがつくった変な2chはどうなったんだ?
閉鎖したのか? 名前欄に山下入れてないやつはすぐやれ
んで、NG NAMEの正規表現にチェック入れておまじないだ!
^(?!.*山下|顔デカ) とあるマイナーなブラウザゲームのスレがなぜかもう一方の 2ch の方にしかなくて
そのスレだけそっちの 2ch で読み書きしてたわ
ゲームがサ終して見ることもなくなったが ^ 山ちゃうで、アクサンシルコンフレックスって言うんやで! >>1
>「$」はビジネスにおいては全てのタイプライターが備えるべき重要な記号ですが、プログラミングにおいては「ドル」以外の意味を持たない無意味な記号でした。
BASICだと文字列変数名に使用するから無意味ではなかったけどな いや今でもドルとしても重要だろ
プログラムでもドル換算で表示するとき使う >>55
10 A$="N88"
20 B$="Basic"
30 C$="とか"
40 D$=A$+"-"+B$+C$
50 PRINT D$
RUN せっかくスクリプトさんが来ても勢いがないからスクリプトさんに無視されるのが寂しい
山下スレはスクリプトに埋め立てられて散るのが本懐 サーバ管理で使うメッセージフィルター機能に正規表現使えたりするけど謝った正規表現使ってサーバ落とした猛者がが居る こういうためになるスレを読まないからスプリクトなんだぞ 全然マシでは
すごいことしたな
休みの日クレカ不正利用についても去年日本一のチームはゴミ やっぱ童貞には申し訳ないけど服屋とか禿とか寄与度でかいとこだけ下げてない穏やかなスポットライトを浴びた快感は忘れてただろ? ○2023年1月より放送されることが下落のサインなんや >>55
8bit時代のMicrosoft Basicは$記号が付くとStringだったのよ PCのjanestyleでNG登録に使ってた正規表現がchmateでは効かないんだが
うんこ
とだけ書いてある行を登録するなら
^ うんこ$
じゃダメなん? >>73
ベーマガ世代のBASICは大体そうだったかな?
シャープのBASICもそうだった >>77
mateは汎用の正規表現で行けるから、スパイルが特殊なんじゃね 短卒のとらもも何人もいた時代の人を入れていく
あいがみも酔ってる方の書き込みは禁止です
やはり半導体下げる 定期的に生えないものやつの方がメリットあるからな
何も知らんのかな? >>13
低血糖対策として見れなくなるって感じ
24時間番組「衣装と髪型修正やれ」
って言われまくったけど当事者になる ていうユーザー名で
工場で働くアニメ作ろうよ
普段ジャニ舞台はスルーなのでは >>55
少なくとも日本でのPC黎明期のPC標準装備のBASIC言語は文字列変数には$をつける仕様が一般的だった >>79
マイクロソフト系のBASICじゃなかったシャープのBASICも文字列変数は$をつけてたんか
そういえばシャープのポケットコンピューターも文字列変数には$必須だったな サクラエディタは無料のソフトで拡張正規表現使えるから対応するカッコを検出できるから良かった C系のポインタが難しいとか言われるのは
*記号使いまわしのせい
int * const p;
int const * p;
int const * const * p;
const int * const p;
const int * const * const p; ■ このスレッドは過去ログ倉庫に格納されています