「正規表現」を含む日記 RSS

はてなキーワード: 正規表現とは

2020-05-23

anond:20200521175300

どもども。

「なにか作ってみろ」は有効アドバイス

わたし意見と経歴

わたしは「なにか作ってみろ」系の言説にはまったく同意しません。

わたし自身会社に3ヶ月間みっちり導入教育をしてもらい(COBOL85とPL/I時代がわかる……)、基本的アルゴリズムコントロールブレークマッチング、マスタ-トランザクションソートマージetc.いよいよ時代がわかる……)の演習を(給料をもらいながら)やって、その後もプログラムとつかず離れずでフラフラと生きてきました。

こういう経験新卒カードがあるから有効もので、では1から始めるとしたら……、というときに、プログラミングスクール専門学校)というのは悪くない選択肢ではないかと思います。が、行ったことないので正直わかりません。

実際自分が1から始めるという立場になったら、まったくオロオロして元増田さんのように世のなか(の気にいらないヤツら)に呪詛を吐いて満足するだけだったと思います(当然ながらそれをいくらやってもプログラミングは上達しません)。

「なにか作ってみる」前に動機をはっきりさせる

話をプログラミングだけに限っていえば、一番大事なのはやりかたじゃなくて動機だろうと思います

「なにか作ってみよう」というのは、なにか作ってみようと思ってない人にはまったく心に響かないでしょう。

動機リブンで「なにか作ってみた」人といえば思いだすのは、MikuMikuDance樋口優さん(ミクを簡単に踊らせたい!)とhinadanの若宮正子さん(高齢者にも遊べるゲームが欲しい!)でしょうか。

ただかれらはわたしから見れば(モチベーションを維持しそれを行動に移す)天才で、あんまり参考にならないのも確かです。

作ってみた」は就職に使える経験

あと、元増田さんの動機は「プログラミング生業にしたい」ということなので、野良プログラマでは履歴書上でのアピール力が弱いかも、と思います

ビジネスで使われるアルゴリズムにはそれなりのルールがあります安全な(バグの出にくい)コードの書きかた、「車輪の再発明」はぜず、枯れた(将棋で言えば定跡のような)アルゴリズムを使う、ほかの人に使ってもらえるための工夫(可読性の向上など)、etc.です。

「なにか作ってみよう」を繰りかえしても、そういった作法的なものが身につくかどうか、それは才能に関わってくる問題だと思います。才能だのみの手法を推奨するのは無責任だと思いますね。

また、たとえば「例をコピーして解析する」というのもある意味有効プログラミング学習法ですが、「下手に習うと下手が伝染る」ともいいます。どれがお手本として優れているか、それを見る目はある程度ビジネス用途プログラムに関わっていないと持てないというジレンマがあります

野生のプログラマ就職有効なくらいの力を見せるとしたら、なにかのコミッター(なにする人かよく知りませんが)とかになって「××ならこの人」となったり、プログラミングコンテストで上位の成績を残したりしなければいけないのかもしれません。

どうしたものでしょうね。ブクマカのみなさんの反応を見ると、専門学校でもあまり就職に有利にならない(ホントか?専門学校意味あるのか?)という話ですが、目的就職ならば、一番の近道のような気がします。

じゃあどうすべきか?は他人にはわからない

そこらへんからは、元増田さんがなにをしたいか、あるいは聞いてみたいだけだったのかによります仕事には適性とやる気が大事です。あとは年齢と必要性かな。進路はオーダーメイド以外にはありえないので、提示された案を自分で選んでそれに賭けるしかないのかな、と思います

「なにか作ってみました」の記録

自分がまず作ったもの晒してみろよ

さて、この文章は実はこの一文に反応してのものです。(↑のは前書き)

GWあたりからトシも考えずにRubyの再入門をしていまして、手始めに「首相動静」の整形ツールを作ってみました。

初心者で(Rubyに関しては仕事で使ったことないので)なにか作ってみよう、というとこの程度ですね。

これで就職に有利になるかというと、あんまりそうは思えないなあ。Excelマクロが組めるとかのほうがどこかの事務所に潜りこめそうですよ(でもそれも最近インフレ気味かもしれませんね)。

なにをするツール

朝日新聞首相動静は詳細ですが、改行が入っておらず、大変読みにくいものです。こんな感じです。

首相動静の例(2018年12月11日……話題になったものです)

 【午前】9時31分、自民党本部。33分、同党役員会。10時2分、官邸。5分、閣議。21分、宇宙開発戦略本部。34分、柴山昌彦文部科学相。38分、岩屋毅防衛相。41分、山下貴司法相。11時3分安全保障と防衛力に関する懇談会

 【午後】0時11分、政府与党連絡会議。44分、山口那津男公明党代表。1時27分、日韓議員連盟額賀福志郎会長河村建夫幹事長。2時20分、行政改革推進会議。52分、兼原信官房副長官補、秋葉剛男外務事務次官。3時36分、麻生太郎財務相財務省岡本薫明事務次官太田主計局長。4時7分、太田氏出る。可部生理局長加わる。15分、全員出る。25分、黒川弘務法務事務次官。34分、谷内正太郎国家安全保障局長、北村内閣情報官宮川内閣衛星情報センター所長。41分、谷内、宮川両氏出る。5時3分北村氏出る。10分、東京永田町ザ・キャピトルホテル東急宴会場「鳳凰」で中曽根康弘世界平和研究所設立30周年記念式典に出席し、あいさつ。20分、官邸。6時18分、ガーナのアクフォアド大統領を出迎え。記念撮影。19分、儀仗(ぎじょう)隊による栄誉礼、儀仗。27分、アクフォアド大統領会談。7時12分、署名式、共同記者発表。32分、公邸首相主催の夕食会。8時43分、アクフォアド大統領見送り。9時、ヨルダンのアブドラ国王電話協議

首相動静フォーマット

ただ、これはフォーマットがはっきりしており、

  • 午前と午後はそれぞれ1行になっていて、行頭には【午前】/【午後】という文字列が付いている。
  • 午前と午後の間には空行がある。
  • ひとつひとつイベント時刻表示で始まり句点「。」で終わっている。
  • 時刻は「h時m分」型で、前ゼロはつかない。後にかならず読点「、」が付く。「h時」の部分が前の項目と同じ場合には省略する。
  • 午前いっぱい、午後いっぱいの予定の場合には時刻をつけない(他の首相動静から)。

と、例を見るかぎりキッチリとしたルールに則っているようです。

動機

なので、「これだったら整形できるかも」と思い、再び学びはじめたRubyで整形ツールを作ってみることにしました。

整形ツール
ツール仕様
整形後の例(上記動静を整形)

【午前】

09時31分、自民党本部

09時33分、同党役員会。

10時02分、官邸

10時05分、閣議

10時21分、宇宙開発戦略本部

10時34分、柴山昌彦文部科学相

10時38分、岩屋毅防衛相

10時41分、山下貴司法相

11時03分安全保障と防衛力に関する懇談会

【午後】

00時11分、政府与党連絡会議

00時44分、山口那津男公明党代表

01時27分、日韓議員連盟額賀福志郎会長河村建夫幹事長

02時20分、行政改革推進会議

02時52分、兼原信官房副長官補、秋葉剛男外務事務次官

03時36分、麻生太郎財務相財務省岡本薫明事務次官太田主計局長。

04時07分、太田氏出る。可部生理局長加わる。

04時15分、全員出る。

04時25分、黒川弘務法務事務次官

04時34分、谷内正太郎国家安全保障局長、北村内閣情報官宮川内閣衛星情報センター所長。

04時41分、谷内、宮川両氏出る。

05時03分北村氏出る。

05時10分、東京永田町ザ・キャピトルホテル東急宴会場「鳳凰」で中曽根康弘世界平和研究所設立30周年記念式典に出席し、あいさつ。

05時20分、官邸

06時18分、ガーナのアクフォアド大統領を出迎え。記念撮影

06時19分、儀仗(ぎじょう)隊による栄誉礼、儀仗。

06時27分、アクフォアド大統領会談

07時12分、署名式、共同記者発表。

07時32分、公邸首相主催の夕食会。

08時43分、アクフォアド大統領見送り

09時00分、ヨルダンのアブドラ国王電話協議

う~ん、見やすい!ことないですか?

あと、午後の時刻を24時間制にしたいな、とも思いますが、それは今後の課題(つぎに首相動静話題になったとき)とします。全角数字計算ってどうやるんだろう?

ソース

たぶんRubyistにいろいろ突っこまれると思うけど、こんな感じです。

プログラマ玉石混淆ですが、これは石のほうの例だと思っていただければさいわいです。

はてな記法にはシンタックスハイライトあるけど、増田だとInternal Server Errorになるのではずしました。見にくくてスマソ。

# encoding: utf-8
# 漢字コンバータライブラリを取りこむ(String漢字変換メソッドを付けてくれる。神)
require 'kconv'

# 正規表現パターン
# 時刻をh時m分形式からhh時mm分形式にする
# 否定後読みを使用する
# 時は行頭にある
OneDigitHour = /^((?<![0-1])[0-9]時)/
# 分は時のあとにある。このパターンマッチすると、\1が時、\2が分になる。
OneDigitMinute = /^([0-9]{1,2}時)(?<![1-5])([0-9]分)/
# 分のない、時だけの行のパターン否定先読み使用
HourWithoutMinute = /^([0-9]{1,2}時)(?![0-5]?[0-9]分)/

# 行頭のh時m分をhh時mm分にするサブ処理(これは関数といっていいの?)
def convTopHourMinute2TwoDigits(oneLine)
    # 時を変換
    oneLine.sub!(OneDigitHour, "0\\1")
    # 分を変換
    oneLine.sub!(OneDigitMinute, "\\10\\2")
    # 分がない場合"00分"を追加
    oneLine.sub!(HourWithoutMinute, "\\100分")
    # 戻り値
    oneLine
end

# 入力ファイル名前
InputFilename = "首相動静2018年12月11日.txt"
# 出力ファイル名前
OutputFilename = "首相動静2018年12月11日_編集済.txt"

# 入力ファイルオープン
inFile = File.open(InputFilename, "r")
# 出力ファイルオープン
outFile = File.open(OutputFilename, "w")

# 時刻パターンシンプルに、h時、m分、h時m分、という3パターンを結合する
# 1つのパターンで全部カバーするよりこちらのほうが見やすい。というか、脳の容量の問題で1文に書ききれなかった
jikokuPattern = /[0-9]{1,2}時[0-9]{1,2}分、|[0-9]{1,2}時、|[0-9]{1,2}分、/
# 午前/午後
ampm = /(【午前】|【午後】)/

# 午前/午後、あるいは時刻の前で改行するためのパターン
kaigyouSign = Regexp.union(ampm, jikokuPattern)

# ファイル一括読み込み
# 昔は1行ずつ読みこんでました。メインメモリが3MByteとかだったので
contents = inFile.read.toutf8

# 入力終了。閉じておきます
inFile.close

# スコープ関係から、ここでローカル変数に代入
# ※ Rubyスコープと暗黙の型には泣かされました。これに慣れるのがRubyのコツかしら
#  明示的な型宣言はあったほうがいいと思うなあ。エラー出力の理由がわからなかったりするので。
hour = ""

# デバッグ行はコメント化しています
# 時刻パターンチェックのため、コンテンツを出力してみる
# p jikokuPattern.match(contents)

# エントリを改行サインで行に分ける
contents.gsub!(kaigyouSign, "\n\\&") # "\\&"はマッチした文字列のもの。2重のエスケープ"\\"が必要

# 改行チェックのため出力
# p contents

# 入力を行で分割して各行ごとに処理
contents.split("\n") do |oneLine|
    # 午前/午後を示す開きカッコ"【"があるか
    if (oneLine =~ /^【/) then
        # そのまま出力
        outFile.write(oneLine + "\n")
        # p "午前午後:" + oneLine
        next
    # 空白行は無視スキップする)
    elsif (oneLine =~ /^[\s ]*$/) then
        # 出力しない
        # p " 空白行:<skip>"
        next
    # 行頭に「時」があるか
    elsif (oneLine =~ /^[0-9]{1,2}時/) then
        # あったら時間表示を抜きだしておく
        hour = oneLine.match(/^([0-9]{1,2}時)/)[0]
        # p "   時:" + oneLine
        outFile.write(convTopHourMinute2TwoDigits(oneLine) + "\n")
        next
    else
        # 「時」がなければつけて出力
        oneLine = hour + oneLine
        # p "普通の行:" + oneLine
        outFile.write(convTopHourMinute2TwoDigits(oneLine) + "\n")
    end
end
感想

手でやったほうが早いね

以上

2020-05-14

ag正規表現抑制するオプションはない

雑に2-3回ググっただけだからしらんけど。グーグルの1ページ目に存在しない情報はこの世にない

ag '\[a-zA-Z0-9\]'

みたいにバックスラッシュメタ文字回避するしか無い

2020-05-07

自分がめちゃ使えるって言ってる意味じゃないんですけど、あまりにも社内にメモ帳で済ましテキストエディタが使える人がいなさすぎて勉強会開きたいんですが。

などこのぐらいでも覚えたら結構捗ると思うのです。

面倒くさいことを面倒くさいままするんじゃなくて、どうしたら簡単に短時間でできるかって誰もそういうのは考えないもんだから

専門の慣れた人に頼めば10秒で終わることも、慣れない人がやると普通に1時間かかる様なことをして仕事した!って言って達成感得てる場合じゃないですよ本当に。

リストラで人数が少なくなったから、残った人で何でもできるようにするのも大切かも知れませんが、

専門の人が居るならそれを逆に活かさない手もないと思うんですが。

と言う自分はてな記法を初めて使ってみました!こんなことできるんですね。

今日もいくつか増田を書きましたが、ブクマトラバがつきませんでした。

やっぱり日々勉強ですよね、どうなるか分かりませんが日々自分の刀を磨いて行くしかないのかなと思いました。

今日はもうちょっとして帰ります

また明日よろしくお願いします。

Google Spreadsheet超便利じゃん。

Office切れてたから使ってみたけどこっちでよさそう。

本家正規表現グループ置換できなかったよな。

2020-05-06

正規表現検索できるサーチエンジン

なんで無いんだよ。

早く作れよIT土方ども。

2020-04-16

anond:20200416061359

かなり面倒だが、できるにはできた。pandocは不要希ガス

2020-03-19

Q:はてなアンテナでうまく更新通知しない

きょうの答え:無視する行にregexp:正規表現でORを意図して間違って二重で「||」があったのですべての行にマッチしてしま無視されてしま

2020-01-11

VBAって何が良いん?

新しい職場エクセルしか使えない環境なんやが。

正規表現もないわ、フォーマット文字も使えないわ、どうなっとるん?

pythonに慣れ親しんだ身からすると旧石器時代に戻ったような感覚

まぁ、でも表計算機能とかGUI機能とかは便利で良いと思うよ!

おじさんエクセル頑張るお。

2020-01-10

Google音声入力クソすぎるやろ

正規表現入力しようとしたけど、キャレットとか角括弧とかバックスラッシュとか出てこねえじゃん

2019-12-19

Engadget JapaneseTwitterアカウントがひどい @engadgetjp

https://twitter.com/search?q=%22mac%20pro%22%20from%3Aengadgetjp&src=typed_query&f=live

まずはリンク先の検索結果を見てほしい。

・・・何だこれは?

#エンガジェット日本版 #エンガジェット #engadgetjp #engadget日本版 #engadgetjapanese とハッシュタグと公開日時だけ変えて連続で同じツイートをしているではないか。これでは正規表現でもしないとミュートできなくなっているし、他のアカウントについても言えることだが、何回RT(リツイート)されたかで再度ツイートするようなアカウントTwitter利用規約違反としたほうが良いと思う。これは、ただのノイズしかない。

2019-11-22

Markdownって一昔前の正規表現みたいだな

いろんなところで適当に似せて微妙に違う実装が入り混じって細かいイライラが溜まっていく感じとか。

2019-11-10

TwitterYahoo!リアルタイム検索共通で使えるフィルタ(拡張機能)作った

anond:20180609124213

Twitterフィルタ - Chrome ウェブストア

https://chrome.google.com/webstore/detail/twitter%E3%83%95%E3%82%A3%E3%83%AB%E3%82%BF/eoglgmgmfacolbkbjpkhdloieffcmnan

Twitterフィルタ – 🦊 Firefox (ja)

https://addons.mozilla.org/ja/firefox/addon/twitter%E3%83%95%E3%82%A3%E3%83%AB%E3%82%BF/

github

https://github.com/lvnkae/twitter-filter

概要

用語

機能

Twitter
Yahoo!リアルタイム検索
togetter
迷惑サイトフィルタ

使い方

基本設定
詳細設定

ユーザIDミュート詳細設定

設定済みIDダブルクリックで詳細設定へ

 ・アカウント固有の非表示ワード設定

   質問箱回答だけうざい

   NewsPick発言が痛々しい

  など。チェックはしたいアカウントだが一部気に障る発言がある場合に。

表示名ミュートの詳細設定

設定した単語ダブルクリックで詳細設定へ

 a.単語の頭に <> を付けると正規表現ON

 例)

  <>(名言|迷言|画像|図鑑|検定|ネタ|セリフ)bot$

  各種botツイートプロフィールをまとめて削除

 b.フィルタ適用方法指定

   完全一ON/OFF

   大文字/小文字区別なしON/OFF (正規化)

  をチェックボックスにて指定

 ※完全一致と正規表現排他

 ※両方設定した場合正規表現が勝ち完全一致は無視される

ワードミュートの詳細設定

 単語の頭に <> を付けると正規表現ON

 例)

  <>宇佐美 *定満

   宇佐美定満

   宇佐美 定満

   宇佐美 定満

   宇佐美  定満

  等、姓名間にスペースが0個以上ある定満はを含むツイートを削除

絵文字の扱い

[対象サイト]

URL概要ミュー対象
https://twitter.com/$(user)twitterユーザページツイート/おすすめユーザ
https://twitter.com/$(user)/status/$(tweet-id)twitterツイートスレッドリプライ
https://twitter.com/$(user)/lists/twitterリストツイート
https://twitter.com/search?=$(command)twitter検索結果ツイート/プロフィール/画像/記事
https://twitter.com/hashtag/$(hashtag)?src=hashtwitterハッシュタグ検索結果ツイート/プロフィール/画像/記事
https://search.yahoo.co.jp/realtime/search?$(command)Yahoo!リアルタイム検索ツイート
ttps://togetter.com/li/$(contentsID)togetterまとめ詳細ページツイート/リンク/コメント

備考

Twitter
amba.tobitly系(ameba)
amzn.tobitly系(amazon)
bit.ly本家
buff.lybitly系
dlvr.it
goo.glgoogle独自/API廃止されたらしい
htn.tohatena独自/19.02.28API廃止
ino.toInoreader
ift.ttbitly系(IFTTT)
is.gd
j.mpbitly系
kisu.me
lb.tobitly系(livedoor)
nav.cxnaver独自
npx.meNewsPicks独自
ow.lyhootsuite
tinyurl.comtinyurl

結果

twitter検索結果がかなりきれいになった。まとめサイトとかまず見ない。

動機

技術

短縮URL展開
右クリックメニュー

文字制限にかかったので次へ…

2019-08-14

マンパワー必要」ってよく言うけど

ポリこれ的に正しくないので「マンコ?パワー」と正規表現表現すれば男女両方併記になるからぜひそうするべきだと思うんだ。

2019-07-07

正規表現で置換するか手で置換するか

前者の方が早そうなんだけどやってみると思うように行かなくて時間かかる

何度見直しても合ってるように見えるのに…これなら手でやった方が早いやんけ

2019-06-28

anond:20190622181916

「善良な管理者の注意義務」ってどこかに書いてあるのかねぇ、って思っちゃったけど。

広告識別ID、利用アプリ特定入力情報を本アプリから当社が運用するサーバーに送ることにより取得し

単語から広告サジェストしたいだけなら「利用アプリ」の収集は要らないよね…何に使うの?

利用規約全部読んでも、「情報第三者提供をしない」とは書かれてないから、提供されていてもユーザー文句言えない状態

それといま問題なのはキーボード入力収集する」のがそもそも問題で、それが個人情報(法律上の)かどうかはまた別だよ。

正規表現で判定しているとか情報もあるけど、クレジットカードみたいな全部数字区別できない。アカウント名やパスワードのようなただの英文字も無理だろう。

2019-04-02

いま、この「自分の全記事を一括削除するスクリプト」は動かない?

anond:20130927152907

いま、この「はてな匿名ダイアリー自分の全記事を一括削除するスクリプト」は、動かない?

httphttps、URL などは、適切に直した。

・POSTに与える最後csrf を取ってくる parse が間違って、 rkm= が空になっている。正規表現parse していたのを直して、 o+XXXXXXXXXXXXXXX/g を拾ってくるようにした。

・POSTに与える delete=が元々の %8d%ed%8f%9c%82%b7%82%e9 でも削除できないし、「 %e5%89%8a%e9%99%a4%e3%81%99%e3%82%8b 」でも削除できなかったし、これってマジックナンバーなん?

2019-03-07

anond:20190306191019

それって、grep 案件では?

grep パン[正規表現]ティー


いや、grep じゃなくて sed でも awk でも perl でも何でもいいんだけど。正規表現が使えれば。

google検索じゃ使えないよね。たぶん。)

ログイン ユーザー登録
ようこそ ゲスト さん