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
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
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
5 :(SB-Android):2024/04/03(水) 21:13:47.99 ID:5Wb1wv120.net
79 :名無しさん@涙目です。:2024/04/05(金) 17:22:26.39 ID:dX9NgsyL0.net
46 :おじゃま山下(和歌山県):2024/04/03(水) 23:25:44.38 ID:qw+irHrL0.net
45 :名無しさん@涙目です。:2024/04/03(水) 23:12:14.32 ID:xj3T68HI0.net
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 :名無しさん@涙目です。: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
74 :名無しさん@涙目です。:2024/04/05(金) 10:02:30.40 ID:GATinAm50.net
21 :コれム媒配スタ:2024/04/03(水) 21:56:01.88 ID:oWChICh30.net
30 :(埼玉県)うももんねぬ(滋賀県) [RU]:2024/04/03(水) 22:17:09.06 ID:JMoAV3880.net
22 :(大阪府)スレ民:2024/04/03(水) 21:56:06.03 ID:uDQHCPZ60.net
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
85 :名無しさん@涙目です。:2024/04/05(金) 20:11:19.03 ID:EOfkF+Mz0.net
13 :名無しさん@涙目です。:2024/04/03(水) 21:33:34.64 ID:8TCiyugD0.net
88 :名無しさん@涙目です。:2024/04/05(金) 21:40:50.25 ID:TcMT8I+70.net
26 :(やわらか銀行) (みかか)山下:2024/04/03(水) 22:06:52.01 ID:/uOXlAqG0.net
59 :納豆狂人(東京都)(庭) [US]:2024/04/04(木) 08:18:01.44 ID:NM5egFTe0.net