正規表現について。
今「何それうまいの?」と思った人も「わからない」を回答としてご用意しているのでぜひ参加を。当サイト常連のアニキ達はプログラマが多めと記憶しており、高めに出そうながらそれもまた良しとして。
休み明けなので手短に。
順番が前後するけれど、今週公開予定のミニアンケートの最後にGoogleフォームを使用した単発のアンケートがあったのでそれもぶち込んだ際、あまりにも手数が多くひらめいた問いがタイトル。
以下の手順のソースファイルはこちら>202007.csv.zip(4.6KB)
- Googleフォームからソースをダウンロード<Googleフォーム使える
- ファイル名~csv.zipなので解凍(展開)する<拡張子を見ている
- 中身のcsvファイル名が文字化けしており修正<文字化けの認識
- その中も文字化けしており閉じて拡張子をtxtへ<拡張子の種類
- テキストエディタで開きUTF-8からSJISへ変更<文字コード
- 拡張子をtxtからcsvへ戻す
- 開くとこれでは集計できないと知り再びtxtへ戻す
※この際にA列と1行目は不要なので削除
- テキストエディタで開き行末の改行を「;」へ置換<正規表現使用
- そして「;」を「,」へ置換するとExcelの1行目に数百件横並びになるので中止し、改行は置換せずに「;」を「,」へ置換<通常の置換がわかる
- csvへ戻しExcelで開きxlsx形式で保存<Excelが使える
以上。結局、正規表現は使っていないというオチでもある。
1番と10番は学校や趣味で何となく覚えるとしても、拡張子や文字コード、テキストエディタ、そして正規表現までは普段からパソコン慣れしていなければ厳しいはず。
私も正規表現はBTOメーカーに居た頃にプログラマな同僚から「凄く便利なので絶対覚えた方が良い」と言われて知ったほどなので、これ使える人あまり居ないのでは?と思い。今、mjd?と思ったならggrks。
私はこの手のスキルは中途半端派なので、Excelの関数も正規表現もよく使うもの以外は覚えてはおらず、その都度ググりながら使用する程度。
というわけでアンケート。テキストリンクは別窓、画像を押すとこのタブでフォームが開くハイブリッド。
正規表現に関する調査
https://docs.google.com/forms/d/e/1FAIpQLSfCd0jqf2P5Dv6RLGKpv_f6nggwOcNKYw5moEGh_nDAsQJWgQ/viewform
プログラマの種類は非プログラマな私が設置した7つなので、もし該当するものが無ければ「どれに当てはまるかわからないがプログラマ」で回答を。
「なんちゃってプログラマ」とは、求人で〇〇(JSONとか)使える人募集に応募できるレベルではないが何らかの言語を使用できたり、今や職人として求められていないBASICやマシン語が書ける人。吹いた茶は返さない。
以上。2問しかないので一瞬で終わるはず。ご協力ありがとうございます。※2020.10.11 終了
正規表現は、行頭や行末のスペースを除去するとき、HTMLタグを除去するとき、括弧や感嘆符や疑問符を全角↔半角相互変換するときなどに使っていますねw
なおVBAやVBSではテキストエディタや他のプログラミング言語と使い勝手が違うので注意が必要ですw
>私はこの手のスキルは中途半端派なので、Excelの関数も正規表現もよく使うもの以外は覚えてはおらず、その都度ググりながら使用する程度。
私もMATCH関数やSUMIF(S)関数などはよく使うのにその度にググっていますw
>「なんちゃってプログラマ」
私は今は仕事で使うVBAしか書けなくなってしまったので「なんちゃって~」でしょうねw
HTML・CSS・JavaScriptしか書けず、WordPressのテーマをいじるときに時々PHPをコピペしているWebデザイナーはどれに当てはまるのでしょうか?
>中身のcsvファイル名が文字化けしており修正
DLしたZIPファイルの中身は「202007 スマホ選びに関する調査.csv」で文字化けしていませんでした。修正してから圧縮し直したのでしょうか。
>その中も文字化けしており閉じて拡張子をtxtへ<拡張子の種類
やり方を忘れたので検索しながら実践しましたが、私の場合は文字化けさえ直ればあとは何とかなるので、文字コードだけ変更するに留めておいています。正規表現を気にするのは、正規表現を気にする人に対してだけです。
というか、どこまでが正規表現なのか知りません。
ログから複数キーワードを検索する時とかに使いますね。
Ubuntuのgrepコマンドと組み合わせて主に使います。
正規表現はよく使います…というか正規表現がないと生きていけない。
123-456 (数字3桁-数字3桁)のようなパターンを文字列から抜き出すだけでも正規表現がないと非常に面倒。
# 正規表現なら、\d\d\d-\d\d\d みたいな感じで 000-000 から 999-999 の全てにマッチする。
# 正規表現がないと数字を見つけてから次の数字を調べて更に次を調べて・・となる
ところで、上にあるcsv.zipは私なら以下のような感じで処理します。
1.ダウンロード(このページから)
2.解凍(ファイル名の文字化けはなし)
3.Excelで開くが文字化け
4.テキストエディタでcsvファイルを開き文字コード、改行コードを指定して別名で保存
サクラエディタで右クリックを拡張しているのでcsvファイルで右クリック→SAKURAで開く で開いてます
5.再度Excelで開いてA列、1行目を削除
6.データは1つの列にセミコロン区切りで入っていそうなのでExcelでセミコロンで分割
A列全てを選択→データタブ→区切り位置→カンマやタブなどの…を選択して次へ→区切り文字でセミコロンだけをチェック→完了
7.xlsx形式で保存
6番の分割がいろいろできて便利。
# そしてこれが言いたかっただけ。