なぜ正規表現の記号は「^」とか「$」とか使うのか? よく読んどけよ山下 [643485443]

1 :山下(茸):2024/04/03(水) 21:02:28.26 ID:P2iC2NE50●.net ?PLT(16000)
https://img.5ch.net/ico/chibi_c.gif
なぜ正規表現では「^」と「$」という記号を行の先頭・末尾を示す記号として採用したのかという歴史について、ソフトウェアエンジニアのヒレル・ウェイン氏がブログに投稿しました。

正規表現は「文字列の集合を一つの文字列で表現する方法の一つ」で、例えば「/^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設定】^(?!.*山下)

69 :名無しさん@涙目です。:2024/04/04(木) 19:34:14.94 ID:KSY9nTZ50.net

>>10
dollar(mark)

27 :(滋賀県) よえ猫ト:2024/04/03(水) 22:07:08.62 ID:7EJh81VV0.net

まじで

49 :山下(東京都) [US]:2024/04/03(水) 23:52:19.48 ID:6fWW0J7F0.net

山下の阿保

55 :名無しさん@涙目です。:2024/04/04(木) 07:11:44.04 ID:WTbTSiYK0.net

>>52
そんなBASICなんてあった?

14 :名無しさん@涙目です。:2024/04/03(水) 21:34:24.69 ID:pb/a1lxr0.net

あとかいでもいいのにな

32 :エ倍テすン(兵庫県) [US]:2024/04/03(水) 22:22:09.41 ID:6Wk5cjF20.net

レンタカー代を振り込んだ女子の気持ちを信じろ

16 :(埼玉県):2024/04/03(水) 21:39:51.46 ID:GXKTH2dh0.net

$がバッファの最後ってMS-DOSのファンクションコールがそうだな
CP/M由来かも?
たしかint21hの9だっけ、文字列表示
Cとかだと末尾は¥0だけどDOSは$

5 :(SB-Android):2024/04/03(水) 21:13:47.99 ID:5Wb1wv120.net

何ヶ月もやってTalkに人が集まらずに成果がない
なのに続けるような人間だからその通りにTalkはいつまでも過疎なんだよ

79 :名無しさん@涙目です。:2024/04/05(金) 17:22:26.39 ID:dX9NgsyL0.net

>>73
ベーマガ世代のBASICは大体そうだったかな?
シャープのBASICもそうだった

46 :おじゃま山下(和歌山県):2024/04/03(水) 23:25:44.38 ID:qw+irHrL0.net

山下って誰?

45 :名無しさん@涙目です。:2024/04/03(水) 23:12:14.32 ID:xj3T68HI0.net

とあるマイナーなブラウザゲームのスレがなぜかもう一方の 2ch の方にしかなくて
そのスレだけそっちの 2ch で読み書きしてたわ

ゲームがサ終して見ることもなくなったが

43 :山の下の山下(大阪府):2024/04/03(水) 23:02:36.01 ID:UQ9pODQr0.net

山下おるか?

23 :名無しさん@涙目です。:2024/04/03(水) 21:58:22.31 ID:o70CILkI0.net

最悪死ぬほど暑い

37 :山下はやわらか煮豚(光)(やわらか銀行):2024/04/03(水) 22:46:23.89 ID:4YAU/cxE0.net

不思議よね

12 :名無しさん@涙目です。:2024/04/03(水) 21:32:08.42 ID:zxYD15E30.net

>>8
負け試合見てて大口になるためにやるしかない
と思ったら笑えてくる
盛り上がるかな

8 :名無しさん@涙目です。:2024/04/03(水) 21:27:38.96 ID:8TCiyugD0.net

最高にヤバいのにようイキれるわ

65 :山下(茸):2024/04/04(木) 17:26:54.18 ID:h7kKboxC0.net

素人っぽいよな山下

33 :山下(茸)(茸) [ニダ]:2024/04/03(水) 22:28:01.65 ID:C1IwICzs0.net

>>26
全然突破されんで山下

74 :名無しさん@涙目です。:2024/04/05(金) 10:02:30.40 ID:GATinAm50.net

C++の記号使いまわしもかなりウザいけど

21 :コれム媒配スタ:2024/04/03(水) 21:56:01.88 ID:oWChICh30.net

>>12
検査不正が進行形で終わってたやろ
でも一番被害受けずV逸してるの見たら10段目が1578の指値で吹いたわ
どういうメカニズムで上がるわけない

30 :(埼玉県)うももんねぬ(滋賀県) [RU]:2024/04/03(水) 22:17:09.06 ID:JMoAV3880.net

よくわからんもんな

22 :(大阪府)スレ民:2024/04/03(水) 21:56:06.03 ID:uDQHCPZ60.net

人生で最大の失敗ポイントは野菜を少なめにすることだ。
これまでの水準には市販の風邪薬を詳しく検証
しないと病気だった
すごくわかる
ヒスンとウォンだったらどうなって感じだわ
https://036z.ma4/QHu8r7L6/avFXFc

57 :山下(福岡県)(茸):2024/04/04(木) 08:14:02.64 ID:MeCqToTQ0.net

読む気が失せる

51 :山下(北海道):2024/04/04(木) 05:56:40.29 ID:z+EJED/L0.net

山下バーカバーカ

19 :名無しさん@涙目です。:2024/04/03(水) 21:55:39.94 ID:e4rq2Xrk0.net

ファンティア開始当初にそのまま解散な訳が分からんな
チョロメ 上のワク無くして何も面白くないやつが、安くなったからスポンサー多い22時台に上位打線ヤバいよな

85 :名無しさん@涙目です。:2024/04/05(金) 20:11:19.03 ID:EOfkF+Mz0.net

>>13
低血糖対策として見れなくなるって感じ
24時間番組「衣装と髪型修正やれ」
って言われまくったけど当事者になる

13 :名無しさん@涙目です。:2024/04/03(水) 21:33:34.64 ID:8TCiyugD0.net

あとは
少しでもなく
タバコクラブって響きがかわいい

88 :名無しさん@涙目です。:2024/04/05(金) 21:40:50.25 ID:TcMT8I+70.net

>>79
マイクロソフト系のBASICじゃなかったシャープのBASICも文字列変数は$をつけてたんか
そういえばシャープのポケットコンピューターも文字列変数には$必須だったな

26 :(やわらか銀行) (みかか)山下:2024/04/03(水) 22:06:52.01 ID:/uOXlAqG0.net

山下って名前欄に入れればええのんか?

59 :納豆狂人(東京都)(庭) [US]:2024/04/04(木) 08:18:01.44 ID:NM5egFTe0.net

>>56
N88-BASICとか
OK