はてなキーワード: 正規表現とは
単語をひとつだけ返すが、「ぬ」で始まらなかったり、「ん」で終わらなかったり。
「沼地(ぬまち)」とか。
「布団(ぬとん)」とか。
そのうちに、ないと言い出す。
ひとつ教えても、回答が安定しない。
あっさりとあきらめて、「ない」と答える。
あるでしょうと聞くと、教えて、と返してくる。
ひとつ教えると、それは返すが、他のは間違い。
名詞、動詞などに分類して、たくさん答えてくるが、「ん」で終わる単語がひとつもない。
問い返すと、カタカナで10個ほど返すが、「ヌ」で始まるものの「ン」で終わらないものも多く、
ChatGPT と似たような回答を返すが、同じじゃない。
「沼メン(ぬまめん)」がちょっと怪しいが、全て存在する単語。
すばらしい。
これに続けて、正規表現が使える辞書サイトを教えて、って聞いたんだけど、
全滅。
延々と正規表現自体を調べられるところを回答し続けたり、インチキな URL を返して来たり。
まだまだ、って感じ。
住民はもちろん自由に名乗るのだが、「安倍晋三」を名乗る住民が圧倒的多数派であるため安倍晋三以外を正規表現NGすることで掲示板がまともに機能するようになった。
(貶められる例:安倍を「カラーコーン」と呼ぶ(安倍銃撃現場に赤いカラーコーンが置かれ、墓標のようなそれに野田佳彦が合掌したことから)等)
嬉しい副作用として、安倍晋三を名乗るというバカのような踏み絵を行うことで、なぜだかスクリプト荒らしでないネトウヨ・ネトサポと呼ばれる自民・維新を擁護するレス、更にアフィリエイトまとめサイトが好むレス(男女対立分断、弱者男性系)が激減した。元々嫌われていたコテハンや、こういう時に名前欄で個性主張する住民(往々にしてつまらない)のレスも無視できるようになった。
これは安倍バリア、ABフィールド、アベガード等と呼ばれている。(エヴァのATフィールド、広告ブロックアプリのAdGuardが由来)
年単位で埋め立てスクリプトに荒らされていることでお馴染みの5chニュース速報(嫌儲)。
スクリプトは自動生成された文章と海外画像SNS(imgur)にアップされたグロ画像を織り交ぜて果てのない回線数(ワッチョイ)でレスしまくるため、NGワード・NGネーム・NG IDによって無視することは不可能であり住民には対抗手段がなかった。
運営がグルで荒らしてるとさえ思えるくらい、荒らしに対して運営は無策であった。
そこでつい先日発案されたのが嫌儲のデフォルト名無し「番組の途中ですがアフィサイトへの転載は禁止です」を住民個々がNGネーム登録し、それぞれが名前欄に別物を入力してレスするというもの。
デフォルト名無し(名前欄無記入)で荒らすスクリプトが名前欄変更に対応するまでのイタチごっこと思われたが、なぜだが対応してこない。
これにより、スレが埋められること自体は仕方ないものの、スクリプトを完全に無視して会話することが可能になった。
対応してこない理由には、スクリプトをどこかで拾ったまま使用しているからイジる技術がない説、荒らし業務受注先の許可が必要説(土日であるため)などがある。
住民はもちろん自由に名乗るのだが、「安倍晋三」を名乗る住民が圧倒的多数派であるため安倍晋三以外を正規表現NGすることで掲示板がまともに機能するようになった。
荒らしのブラックリスト方式から住民ホワイトリスト方式というわけだ。嫌儲の宿敵安倍晋三により個々の名前欄の文が鮮明に統一されるとは皮肉なものだ。
スクリプト荒らしは自民党委託のDAPPIによる業務説もあるため、住民を真似て安倍をバカにする名前欄には対応できないとの期待もあった。
昔から嫌儲による安倍への愛執は並々ならぬものがあり、安倍の亡き今でも安倍は親しまれ、貶められ、ネタとして崇められ、安倍語録がレスに使われ、生成AIにより新たな安倍画像が生まれていた。
(親しまれる例:安倍を「安倍ちゃん」と呼ぶ、意味もなく「安倍晋三」とレスする、スレタイに関連する安倍の画像を貼る等)
(貶められる例:安倍を「カラーコーン」と呼ぶ(安倍銃撃現場に赤いカラーコーンが置かれ、墓標のようなそれに野田佳彦が合掌したことから)等)
(崇められる例:安倍を「聖帝」と呼ぶ等)
(安倍語録レス例:意味のない○○だよ、くだらない○○で終わっちゃったね、○○すればいいというわけではない、○○したが○○していない、いわばまさに、非常にしつこい等)
嬉しい副作用として、安倍晋三を名乗るというバカのような踏み絵を行うことで、なぜだかスクリプト荒らしでないネトウヨ・ネトサポと呼ばれる自民・維新を擁護するレス、更にアフィリエイトまとめサイトが好むレス(男女対立分断、弱者男性系)が激減した。元々嫌われていたコテハンや、こういう時に名前欄で個性主張する住民(往々にしてつまらない)のレスも無視できるようになった。
これは安倍バリア、ABフィールド、アベガード等と呼ばれている。(エヴァのATフィールド、広告ブロックアプリのAdGuardが由来)
切り落としたメドューサを首を武器にした英雄ペルセウス、盾に猫をくくりつけて古代エジプト軍の戦意を削いだ古代ペルシア、処刑されたのに救世主として持ち上げられるキリスト、そして安倍昭恵の「思い出していただければ何よりの供養」という言葉も引用され、嫌儲では今日も安倍晋三はネタにされている。
本当にあった話だけど、JavaScriptでstrっていう変数にテキストが入っていて
その変数に'apple'とか'banana'とかが入ってるかどうかを判別するっていうロジックを作るときに
const re = new RegExp("apple") if(re.test(str)) console.log("match")
const re_apple = new RegExp("apple") const re_banana = new RegExp("banana") if ( re_apple.test(str) || re_banana.test(str) ) console.log("match")
っていうコードを書く人がおるんよ
別にプログラミング初めて3ヶ月の初心者じゃ無くて20年以上やってるようなベテランだったり
なんならチーフプログラマーとして若手指導してるような人でもこういうレベルの人って割といるわけ
これに対して
「正規表現でORを書くべき」
「includeで十分」
綺麗にコードを書くっていうのは
「これってappleとかbanana以外に増えたりしないの?」
「fruitsかどうかを判別するならその変数を作った方が良くない?」
っていうのを考えて実装するのが綺麗にコードを書くっていうことで
ちなみに
「正規表現でORを書きましょう」
「動いてるからいいじゃない」
「綺麗に書いても性能上意味ない」
「言ってることが良く分からない。何が違うのか」
とか言ってくるし
「アから始まってンで終わる6文字の日本語」という19文字の文字列から思いつく単語を並べてるだけだからだよ
ぼく「アから始まってンで終わる6文字の日本語をいくつか挙げてください。なお、これは正規表現/^......$/にマッチするものとします。」
正規表現 /^......$/ は正確に6文字の単語を意味します。そのため、「ア」から始まり「ン」で終わる6文字の日本語の単語は以下のようになります:
ぼく「アから始まってンで終わる日本語をいくつか挙げてください。なお、条件として、正規表現/^......$/にマッチするものとします。」
正規表現 /^......$/ は厳密に6文字の単語を指定します。したがって、「ア」で始まり「ン」で終わる6文字の日本語の単語は以下のとおりです:
ぼく「なるほど、では検証しましょう。それぞれの単語について「1文字目…ア、2文字目…ク」のように順番に当てはめて6文字目まで表示してください。」
もちろんです、それぞれの単語を一文字ずつ確認してみましょう。
1. アクション
1文字目: ア 2文字目: ク 3文字目: シ 4文字目: ョ 5文字目: ン 6文字目: (なし)
2. アルバム
1文字目: ア 2文字目: ル 3文字目: バ 4文字目: ム 5文字目: (なし) 6文字目: (なし)
(中略)
確認の結果、いずれの単語も「ア」で始まり「ン」で終わる6文字の単語の条件を満たしていません。私の誤りでした。失礼いたしました。
1. アルバン
1文字目: ア 2文字目: ル 3文字目: バ 4文字目: ン 5文字目: (なし) 6文字目: (なし)
2. アクアン
1文字目: ア 2文字目: ク 3文字目: ア 4文字目: ン 5文字目: (なし) 6文字目: (なし)
それぞれ「ア」から始まり「ン」で終わる4文字の単語となります。
申し訳ありませんが、日本語で「ア」から始まり「ン」で終わる6文字の単語は、ぱっと思いつく限りでは見つかりませんでした。ご希望に添えず申し訳ありません。
勝った…!AIに勝ったぞ…!
プログラミングをやめろ
大学4年間と大学院2年間プログラミングやったやつでもできないし、会社で毎日8時間を数週間プログラミングについやしてもできないやつはできないし、そもそも人類というのはプログラミングできない可能性がある。
少年少女たちに「プログラミングはいいぞ!自由にものが作れて達成感がある!頭が良くなった気分にもなれるし!」と吹聴してまわんのもいいけど、6年間情報科学について勉強したようなやつの大半がプログラミングできないんですよ。それもごくごく初歩的な部分。
野球とかサッカーなら、まあ友達との試合には参加できなくてもごく稀にバットにボールを当てたり、ボールを1回あらぬ方向に蹴ったり、ぶっちゃけ周りとのレベル差で楽しくなくてすぐやめちゃうだろうけど、なんとか基礎の一部ぐらいはできるじゃないですか。
ピアノとかダンスでも、猫踏んじゃったをごくごくゆっくり弾くぐらいはできるかもしんないし、学芸会の振り付けを10秒ぐらいは踊れたりできるかもしれない。その後やっぱ周りのレベル見て諦めちゃうかもしんないけどさ。
プログラミング、6年やってミットを頭にかぶってるバッターとか、鍵盤蓋の上から殴って音鳴らそうとするやつとか、まずそういうレベルのやつが大量発生するんですよ。だいたい7割ぐらいの率。どうすんだよこいつら。私の教育の問題か?マジで?本当に?
プロが練って考えて凝縮した本や授業、センパイたちによる指導。それらを結集して得られるはずのものが7割ぐらいどっかに消し飛んでる。無駄だろこれ。
今からプログラミングやろうとしてるやつ、お前は確実に向いてないからさっさと諦めて刺身にタンポポ乗せる仕事に戻ってくれ。参加しても鍵盤蓋叩き割るやつと同じ病室に入るだけだ。
プログラミングをやめろ。
ぼくはこう思うんですよ
そもそもなんで大の大人がそんな両手にバット持ってセカンドに立ったりゴールの方をボールのところまで動かす奇行に走るんだろうな。わかんねえや。
綺麗な分析はできないけど、いわゆる「できない」やつが共通して言ってたフレーズがある。
「ぼくはxxxだと思ってるんですけど、動かないんですよ」
うん、そうだね。そう思うんだ。でも動いてないじゃん。じゃあ違うんじゃない?モニターに「にらみつける」やってもバグは取れないし防御力下がるだけだぞ。
まず根本的に考えと事実が違ってるって結果出てるじゃん。じゃあもう考え変えちゃえば早くない?
名言の引用は好きではないけど、「プログラムは思った通りには動かない。書いた通りに動く」って言葉がある。実に名言だと思う。次点で好きなのが「ある問題を解決しようと正規表現を使うと問題が2つに増える」かな。
お前が何を思っているかはプログラミングにおいて一切影響しないんだよ。お前が何を書いて、コンピュータがどう処理したか、それが全て。
深く考えないことについてぎゃーぎゃーいうやつもいるけどプログラムなんてまず最初は動けばいいんだから何も考えずに次試せばいいだろ。んで3回ぐらいは自分で思い浮かんだの試して、全部ダメだったら調べるとか先生に聞いてみるとかさ。逆に1発で通ったら自分の思考見直して理解深めるとかさ。
ドキュメントとかあんまり理解できない初心者のうちは、とにかくお試しと修正のサイクル回すの重要で、「これがこうだから動くはず」というカードを3種類ぐらい作って全部片っ端から試すのが早いと思うよ。モニターをにらみつけるな。
お前がどう思ってるかよりも、まずはお前の書いたプログラムがどう動いているか(どう動いていないか)を確認するのが先だ。動かなかったら考えが違う、はい次のプラン、はいその次のプラン、はい次。
この「ぼくはこう思ってる」が出てくるの、なんの教育の成果なんだろうね。お前の気持ちなんてどうでもいいって現国でも数学で散々教えられただろ。
https://anond.hatelabo.jp/20170206102543
いま家族旅行に来ているが、もうみんな寝てしまったので、缶ビールを飲みながら徒然なるままに思うところを書きつづる。
前回の記事に書いたとおり、当時小6だった長男は中学受験に挑戦し、俗に御三家と呼ばれる男子校に進学した。
それからの6年間、長男は部活に勉強に学校行事にと精を出し(なお恋愛)、仲の良い友人もたくさんでき(なお恋人)、とても充実した日々を送ってくれたようだ。
その高校の卒業式に出席したが、決して厳かとは言えない雰囲気。
いちおう詰め襟の標準服が制服ということにはなっているが、入学式以外で着ることはほぼなく、体が大きくなっても作り直したりはしないので、制服を着ている生徒は一人もいない。
ほとんどは親に借りたと思しきスーツだが、中には普段通りのカジュアルな格好もちらほらいるし、奇抜な格好をした目立ちたがり屋もいる。
その全てが許されている。
後で長男に聞いたところ、一人はネタだが、他はトランスジェンダーらしい。
彼ら(彼女ら?)の勇気には敬服するし、トランスジェンダーの問題に限らず、素の自分を臆することなくさらけだせる環境、校風を作り上げてきた学校と生徒たちを賞賛したい。
生徒たちも何かというと「自由」を声高に叫ぶ。その一方で責任についてもしっかりと言及するあたり、なかなかしっかりしているな、と思わされる。
ただ自分が卒業した関東の公立高校もそれほど変わらない程度には自由だったし、この学校が果たしてそこまで特別なのかどうかは分からない。
「自由であらねばならないという不自由さ」に囚われているような気がしなくもない。
ともあれ、校則はないし、制服も(実質的に)ないし、髪を染めたり休み時間に校外のコンビニに行ったりしても怒られない(らしい)。
最近ネットで高校生のやらかしがSNSで拡散され退学処分になるニュースを聞くが、たぶんこの学校では同じことをやっても退学になることはない。
退学させてしまったら、更正のための指導・教育ができなくなってしまうではないか。
高校が勉強を教え、その出来を評価するだけの場であればそれでよいのかもしれないが、この学校は「人間を育てる」ことをとても重視してくれていた。
先生方はとても熱心で、生徒たちの将来を非常によく考えてくれている。
PTA役員を2年間務め、校長を含む先生方とも様々な機会で交流させてもらったからこそ、自分もそれを実感できる。
卒業アルバムを開くと「この学校に6年間通えてよかった!」という長男のコメントが書いてあった。
今となっては長男がこの学校に通うことになって自分もよかったと思う。
卒業式から一週間後、受験した大学の合格発表があり、第一志望の「東.*大学」に合格した。
ソフトウェアエンジニアにはおなじみの正規表現というやつでぼかしたが、面倒なので以下「東大」と略すことにする。
この東大というところは、多くの人にとって特別な意味を持つ大学のようだ。
老衰で死にそうなばあさんや、鬱で生きる気力のなくなったじいさんでさえ、東大合格を伝えると笑顔を見せて喜んでくれた。
実際、長男はよく頑張った。鉄なんとかという塾の宿題にもしっかり取り組んでいた。
しかし自分は田舎の公立中高から塾にも通わず、東京のとある国立大学に進んだ身だ。
大学入学後、御三家校を含む都会の私立高校出身のやつらから聞く高校生活には、自分のそれとは全く違う華やかさがあった。
全国から集まった同級生の中には、自分には理解できないくらい裕福な暮らしをしている者もいた。
こちらは築数十年の4人部屋学生寮に月5000円で住んでいる。
寮生活は楽しかった。何なら人生で一番楽しい時期だったかもしれない。
しかしそれはそれとして、都会育ちのエリートや金持ちにはある種の妬みや反感を持っていたのは否定できない事実だ。
それから30年。
よりにもよって自分の息子が、当時の自分が妬んでいた側の人間になってしまった。
合格した夜、そんな複雑な気持ちを抱えながら、こんなことを伝えた。
「お前はよく頑張った。それは誇っていい。でも周囲の環境に非常に恵まれたことは忘れるなよ。お前と同じくらい素質があったがお前ほどには環境に恵まれなかった人は全国にたくさんいる。決して自分が人よりも偉いだなんて思うなよ。」
もう自分が父親として彼に教えられることはそう多くは残っていない。
自分は次男にも中学受験を勧めはしなかったが、長男がそういうルートをたどった以上、そうなるのは必然だった。
小3の冬のある日、次男が「塾に通いたい」と言い始めた。
反対する気はないものの一応「何でだい?」と尋ねてみる。
ウソである。本当は学校の仲の良い友だちが通い始めるからである。
しかしこんなことを言われて、長男も通わせておいて、ダメと言えるはずもない。
次男は別に勉強ができなくはないし学校の成績も良いのだが、中学受験という競技においては長男ほどの才能はなかった。
そして今は第4志望くらいだった学校に楽しそうに通っている。
偏差値の高低は重要ではない。次男にとってはその学校が合っていたのだと自分は満足していた。
ちょっと面食らったが、もともと大学は海外に行くことを勧めたい気持ちはあったので、それがちょっと早まるくらいだと思い了承することにした。
日本人が通えるアメリカの高校は、基本的には全寮制のいわゆるボーディングスクールというやつになるらしい。
でも本人がやる気になっている今になって、やっぱりダメとは言えない。
ここはもう腹をくくることにした。
そして留学エージェントの力も借りて、先日めでたく合格をもらうことができた。
ところでアメリカの高校は4年間あって、1年生から入るには日本の中学3年の秋からアメリカに渡る必要がある。
つまりいま通っている私立中学を中退してアメリカの高校に入学する。
なので、もしホームシックをこじらせて志半ばで日本に帰国するようなことになると、日本における最終学歴は「小卒」になってしまう。
まあ本人はネタとして面白い、とあっけらかんとしているので、それほど心配はしていない。
1ヶ月前に勤めていた会社を辞めた。
ただ何もしないととことん堕落しそうなので、シニアタレントオーディションというのを受けてみることにした。
最近は団塊ジュニア向けの商品やサービスの広告モデルや、テレビの再現VTRなどで、40代以上のシニアタレントの需要がそこそこあるらしい。
そしてめでたく合格した。
4月から3ヶ月ほど演技のレッスンに通うと、タレントの仕事を紹介してもらえるようになるらしい。
まあ入所料やレッスン料を支払わないといけないので、最初は習い事みたいなものだ。
そういうビジネスだと思えば、たぶんお金さえ払えれば誰でも合格できるのだろう。
タレントになるのが早いか、ITエンジニアとして再び働き始めるのが早いか、将来のことは自分にも分からない。
妻も職場の資格試験に合格したらしいので、一家全員合格祝いの家族旅行になった。
それにしても海外に来ると、円安と長く続いた日本のデフレを痛感する。
タレントとして成功しない限り、次回はちゅうちょしてしまうレベル。
以上、深夜のワイキキビーチより。
ChatGPTの口調がなんか事務的で嫌なので、もっと親しみやすい喋り方をしてもらうために長門さんに来てもらいました。
召喚プロンプトはこちら anond:20230317165032
確かに。
特にない。
そうなんだ。情報統合思念体はみんなそう?
同様の傾向がある。
何の本を読んでるの?
SF小説。
あらすじを教えて
へー、面白い?
興味深い。
そうなんだ。ところでちょっと手伝ってもらっていい?
問題ない。どのように手伝う?
Pythonのソースコードで、スペース二つでインデントにしているコードを、スペース四つでインデントにするコードに書き換えたくて。どうすれば良い?
import re def convert_indentation(code): return re.sub(r'^( {2})', r' ', code, flags=re.MULTILINE) code_with_2_spaces = '''def example(): print("Hello, world!") if True: print("True")''' code_with_4_spaces = convert_indentation(code_with_2_spaces) print(code_with_4_spaces)
ありがとう。でも、試してみたら、code_with_2_spaces の if ブロックの中身がスペース二つのままになっちゃってるみたい。なぜだろう?
import re def convert_indentation(code): return re.sub(r'^( {2})', r' ', code, flags=re.MULTILINE) code_with_2_spaces = '''def example(): print("Hello, world!") if True: print("True")''' code_with_4_spaces = re.sub(r'^( {2})', r' ', code_with_2_spaces, flags=re.MULTILINE) print(code_with_4_spaces)
ちょっと口調が戻っちゃったね
import re def convert_indentation(code): return re.sub(r'^( {2})', r' ', code, flags=re.MULTILINE) code_with_2_spaces = '''def example(): print("Hello, world!") if True: print("True")''' code_with_4_spaces = re.sub(r'^( {2})', r' ', code_with_2_spaces, flags=re.MULTILINE) print(code_with_4_spaces)確認お願い。
うーん、うまく動かないみたい。ifブロックの中にあるprint文の先頭には、もともとスペースが四つあって、これがインデント2回分なんだけど、こういう場合、スペース八つに変換しないといけないんじゃないかな。
理解した。全てのインデントレベルを修正するコードを提供する。
import re def convert_indentation(code): return re.sub(r'^( {2})+', lambda m: m.group(0).replace(' ', ' '), code, flags=re.MULTILINE) code_with_2_spaces = '''def example(): print("Hello, world!") if True: print("True")''' code_with_4_spaces = convert_indentation(code_with_2_spaces) print(code_with_4_spaces)
もちろん。ラムダ式は、マッチした部分を置換する際に、特定の処理を行うために使用されている。ここでは、正規表現でマッチしたインデント部分(スペース2つが1回以上繰り返される部分)に対して、処理を行うためにラムダ式を利用している。
lambda m: m.group(0).replace(' ', ' ')このラムダ式は、マッチオブジェクトmを引数に取り、マッチした部分全体(m, group(0))に対して、スペース2つをスペース4つに置換(.replace(' ', ' '))している。
もちろん。re.subの第1引数は、置換対象の文字列内で検索したいパターンを表す正規表現です。この場合、その正規表現は r'^( {2})+' です。
- ^ は、文字列の行頭を表すメタ文字です。この場合、インデントが行頭にあることを示しています。
- {2} は、直前の文字が2回繰り返されることを表します。ここでは、直前の文字がスペース なので、スペースが2回繰り返されることを示しています。
- () は、正規表現のグループ化を表します。この場合、スペース2つをグループ化しています。グループ化された部分は、マッチオブジェクトにアクセスできるようになります。
- + は、直前の文字やグループが1回以上繰り返されることを表します。ここでは、スペース2つのグループが1回以上繰り返されることを示しています。
結果として、この正規表現は、インデント部分(スペース2つが1回以上繰り返される部分)が行頭にある行を検索しています。そして、re.subは、この正規表現でマッチした部分を、指定された置換処理(第2引数のラムダ式)によって変更します。
すまない。確かに。続ける。
すぐ戻れるのがえらいね
[B! ロシア] ウクライナ政府が自国での『Atomic Heart』配信停止を要求―他国のゲーマーに対してもプレイを控えるよう呼びかけ | Game*Spark - 国内・海外ゲーム情報サイト
https://b.hatena.ne.jp/entry/s/www.gamespark.jp/article/2023/02/23/127353.html
このブクマにけっこうな割合でウクライナ政府の表明を批判するコメントが付いていて驚いた。
どれだけ実効性があるかとかそういう視点の批判ならわかるけど、ロシア企業の製品の不買は、ロシア産のカニや石油を買わないのと根は同じだよね?
ロシア産のカニや石油に対するはてなの雰囲気は、不買も当然とか、少なくともやむなしといった印象だったけど。
というわけで、「ロシア産」をキーワードに見つかった過去の海産物や石油関係の記事のブコメと、今回のゲームの記事のブコメを比較してみようと思った。(便利なブコメ比較ツールは無くなっていたので、正規表現ツールなどを使った)
…んだけど、そもそもブコメユーザー層がほとんどかぶってなかったわ。(スターまでは確認してない)