Regular Expression(正規表現) Part14 [無断転載禁止]©2ch.net

■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
垢版 |
2017/03/15(水) 02:04:35.47ID:e01p03UP
Regular Expressionスレです。

質問する場合は必ず実装言語や処理系ソフトウェア名を示してください。

前スレ
Regular Expression(正規表現) Part13
http://echo.2ch.net/test/read.cgi/tech/1415149975/


次スレは>>980宜しく
天ぷら等2以降
2017/06/09(金) 23:50:59.51ID:fJoQB/gQ
●Regular Expressionの使用環境
秀丸 HMJRE.DLL V5.00
●検索か置換か?
置換
●説明
文章最後の文字からEOFまでの 空白(全角半角両方) タブ 改行 を消したい。
●対象データ
AAAAA

BBBBB

CCCCC
 

[EOF]

●希望する結果
AAAAA

BBBBB

CCCCC[EOF]
2017/06/10(土) 10:49:19.67ID:qGbgn0XY
http://htom.in.coocan.jp/hmfaq8/4_regular.html#RETURNS
2017/06/10(土) 12:37:04.98ID:6tXlKKLu
[ \s]*(?!\n)$(?#maxlines:99999999)
2017/06/12(月) 04:37:37.47ID:40WtKqR9
>>187
Qiitaなのでコメントまで必ず読むこと

正規表現の先読み/後読みを「絞り込み」と理解してみる - Qiita
http://qiita.com/blackenedgold/items/382704cc54c8e42819d0

[コラム] 正規表現の先読み/後読みは、どう考えても名前が悪いので、呼称禁止令を出してルックと気軽に呼んでみませんか。 - Qiita
http://qiita.com/mochizukikotaro/items/84f3ab2740b8efbe0dc6

後者は日本語表現のネタモノなので理解にはあまり役に立ちませんが
2017/06/12(月) 04:43:04.94ID:3uouTe/z
>>191
ありがとう。読んでみます
2017/06/15(木) 14:44:28.61ID:p0Tdw73d
そもそも「正規表現」が誤訳だし
「先読み/後読み」がどうだって驚かない
2017/06/15(木) 17:11:52.26ID:vJds0eqB
名前なのに誤訳ってなんだよ
2017/06/15(木) 20:46:27.61ID:am9DsefU
「正規表現」が誤訳!!www
2017/06/15(木) 21:53:29.88ID:5Ry9SVFq
前厄,翻訳,後厄
2017/06/15(木) 23:55:29.06ID:kDv/IOKj
非正規労働者に謝れ
2017/06/16(金) 00:00:22.35ID:AvJwaQP1
>>193
そんな感じがする
でも定着して何十年経過したからいまさら変更できない

直訳すると正則記法?
2017/06/16(金) 00:03:22.93ID:ugmLNmLC
まさのりって誰よ?
2017/06/16(金) 00:09:53.04ID:7387anCt
>>198
数学用語で考えると、「正則式」
2017/06/16(金) 00:28:35.35ID:CHM/yJyC
誤訳にしたくて必死過ぎw
2017/06/16(金) 00:34:50.74ID:PEuGYK32
確かに数学的にはregularは正則でnormalが正規だけども
正規表現が正則式だの正則表現になったからといって何が分かりやすくなるでもなし
2017/06/16(金) 01:26:14.32ID:1cZCMNBu
ID変わった時間に擁護
2017/06/16(金) 03:20:09.01ID:cmFh/xD2
英語圏の人たちにとってもRegular Expressionと言われて
[ \s]* みたいなことか〜て思い浮かぶわけでもなかろ
単に「それを何と呼ぶか」つまり名前付けをどうするってだけのことだよ

ただ日本では(2chだけかもしれないけど)性器表現とか茶々入れる奴がいるのが面倒くさい
2017/06/16(金) 06:44:35.89ID:HukDnr5k
2chに限らずゲスな一般大衆の猿共は真っ先に性器と捉える
正規よりかは正則の方が良かっただろうけど
若い女の子へのセクハラに使えるから正規も捨て難い
まあ今時「せいき」の言葉にモジモジする女子なんて希少だが居なくは無い
2017/06/16(金) 12:48:55.14ID:dHQ1DtF8
くっさ
2017/06/16(金) 13:01:55.39ID:KyUpje1a
正規表現で置換
2017/06/16(金) 16:51:35.05ID:ugmLNmLC
>>207
通報した
2017/06/16(金) 17:21:44.35ID:HukDnr5k
痴漢の際に性器表現を用いた
210デフォルトの名無しさん
垢版 |
2017/06/16(金) 18:35:19.21ID:1eQLQexT
成基学園ってまだあるんかね
2017/06/19(月) 22:55:10.17ID:HM1jnBNt
システム関係の仕事してるけど正規表現知ってるとホント仕事がはかどるわ
知らん奴いたら教えたくないレベルw
2017/06/20(火) 00:30:35.64ID:qgvPAN/M
システム関係の仕事って自宅警備員のこと?
2017/06/20(火) 08:43:02.71ID:bMt5HDL+
>>209
正規表現を用いて置換と挿入を行った
だろ
214デフォルトの名無しさん
垢版 |
2017/06/20(火) 12:36:20.94ID:5s5M5H6z
痴漢と挿入
2017/06/20(火) 16:59:32.57ID:V+xxZfop
表現を抜いてれば完璧
2017/06/22(木) 00:33:36.51ID:WTVST2HN
痴漢って挿入する前にするものなのか?
217デフォルトの名無しさん
垢版 |
2017/06/25(日) 14:01:32.44ID:cBKwT0iz
挿入したら痴漢じゃなくなるからそういうことだな
218デフォルトの名無しさん
垢版 |
2017/06/25(日) 14:08:45.87ID:cBKwT0iz
質問です。

ttp://hayabusa3.2ch・sc/test/read.cgi/news/1498009569/
↑ここに、「それは文科省にとってリスクがあるわけですね。」っていう文章があります。
これをエディタで置換したいです。
秀丸エディタには半角化、全角化があるので、
「゙」を「゛」に、「゛」とその前を半角に、「゙」とその前を全角にと言う手順で全角濁音化することができます。
しかし、段階的に置換すると、[ニダ]と言う文字が[ニダ]となります。
専ブラでなく普通のエディタでメール欄に限定せず「゙」だけをちゃんと全角濁音化するにはどうしたらいいでしょうか。
219デフォルトの名無しさん
垢版 |
2017/06/25(日) 14:14:01.85ID:cBKwT0iz
変換関数をネストして、全角から直接全角に置換すれば大丈夫っぽいです。
スレ汚し失礼しました。
2017/06/25(日) 14:17:59.69ID:lrjpj5rj
マクロ
221デフォルトの名無しさん
垢版 |
2017/06/25(日) 14:24:13.60ID:cBKwT0iz
マクロを覚えるほど気力ないので。
せいぜいキーボードマクロまでですね。

メモ:
1回目「゙」→「゛」
2回目「[か-こさ-そた-と][゛]」→「\((0,ToHankaku),ToZenkakuHira)」
2017/06/25(日) 14:40:18.89ID:gOEYQ1GV
Unicode正規化
223デフォルトの名無しさん
垢版 |
2017/06/25(日) 15:09:28.12ID:cBKwT0iz
ID:fr6XvX0v3

DOSコマンドでいけるよ

【.cmd】 バッチファイルスクリプト %12 【.bat】
http://mevius.2ch.net/test/read.cgi/tech/1489207631/


なんかscに書けなくなった。
認証が延々と出てくる。
224デフォルトの名無しさん
垢版 |
2017/06/25(日) 15:19:25.37ID:cBKwT0iz
>>222
なるほど。

http://hide.maruo.co.jp/lib/hmconv/normalize101.html
> Unicode正規化を行ないます。
> パラメータとしてNFC、NFD、NFKC、NFKDが指定可能です。

Googlエ
> 合成形に正規化する方法を NFC(Normalization Form Composition)
225デフォルトの名無しさん
垢版 |
2017/06/29(木) 16:59:45.11ID:02bfNUCV
質問します
●Meryで置換

●対象データ
wwwwwwwa,AAAAA,gawgagaw,fwaf awfaf
n,BBB,gawgagaw,fwaf awfa,fwaaw,fwaaw
rea,CCCC
ae,DD,gawgagaw,fwaf awfaf ,fwaaw

●希望する結果
カンマ2番目の
AAAAA
BBB
CCCC
DD


******
******
******
******
に置換


(?<=,).*?(?=[,\n])
までは考えましたがこれ以上力不足でわかりません よろしくお願いします
2017/06/29(木) 18:40:30.46ID:poRQnsAj
(^.*?,).*?(?=[,¥n])
rea,CCCCのパターンが行末だとできないんだよなー。
2017/06/29(木) 18:57:06.54ID:WmvxL1Sm
^([^,]*,)[^,\r\n]+

$1******
に置換
"a,b",defのようなものはダメだが
228デフォルトの名無しさん
垢版 |
2017/06/30(金) 03:23:16.33ID:9+Qy2E7i
>>226-227
ありがとうございます 上手くいきました 
使わせていただきます&勉強材料にさせていただきます
2017/07/06(木) 20:38:45.39ID:zX6kiHLz
質問です。
●Regular Expressionの使用環境
Java Script

●検索か置換か?
置換

●対象データ
abc:ABCDEFG
def:123456789
ghi:くぁwせdr

●希望する結果
上記のような複数行の文字列があったとして、
"123456789"を取り出すにはどのようにしたら良いでしょうか?
条件としては、行頭の"def"をキーにして、
「defで始まる行の、def:の次の文字から行末まで」を取り出したいです。
よろしくお願い致します。
2017/07/07(金) 08:13:19.50ID:QFC9teR0
後読みが使えないJSなら/def:(.*?$)/m
使えるなら/(?<=def:).*?$/m
2017/07/08(土) 02:10:34.01ID:OqNCkVph
BBCの正規表現クイズ。たまにはこういうのも面白いね
ttp://www.bbc.co.uk/programmes/articles/5LCB3rN2dWLqsmGMy5KYtBf/puzzle-for-today
2017/07/08(土) 06:16:34.80ID:b/20QJ7+
>>230
こういう場合、先読みの方法でやるメリットって有るんですか?
初心者なんで教えて下さい。
2017/07/08(土) 06:17:08.46ID:b/20QJ7+
訂正
後読みでした。
2017/07/08(土) 09:10:13.00ID:NOOXEVdu
>>232
後読みの部分にはマッチしない

つまり>>229で後読み使った場合には
123456789
にマッチするがそうでない場合は
def:123456789
にマッチする
2017/07/08(土) 19:51:13.74ID:utlt5XjQ
後読みの説明はそうなんだけど、>>230 について訊いてるんでしょ?

俺も>>230の意図はよくわからん。行単位の処理を希望してるのにm付けてるし
2017/07/10(月) 01:20:40.78ID:8zNQYoZi
>>231
日本語の記事
http://gigazine.net/news/20170707-regular-expression-puzzle/
2017/07/15(土) 10:24:03.66ID:/mu01QmD
>>231
新しいなコレ!

面白いんでエクセルで入力できるフォーマットを作ってみた
http://www.dotup.org/uploda/www.dotup.org1307951.xls

(拡張子でうちのエクセルが激古なのがバレる…)
2017/07/15(土) 12:03:12.72ID:6mzqXSAQ
少しやって時間の問題だなと思って途中で切り上げて答見たけど
数文字しか合ってなかった
最後までやらなくてよかった
2017/07/25(火) 08:57:23.04ID:QW1aVSBc
●Regular Expressionの使用環境
VBA7.1

●検索か置換か?
検索

●説明
期待する数値の桁数かどうか。拡張子はあっても無くても良い。

●対象データ
AA17-0001.xlsm
AA17-0002

●希望する結果
ifで合致しているかどうかを判定しています。
.Pattern = "^AA\d{2}-\d{4}(\.xlsm$)?"

○AA17-0001.xlsm
○AA17-0002
×AA17-00023
×AA17-00024.xlsm

最後の?を削れば、拡張仕込みであれば上手くいきますが良い方法は
ないでしょうか。
2017/07/25(火) 09:09:17.24ID:jjK7Ecmt
>>239
VBAの仕様は知らんけど、これでできない?
^AA¥d{2}¥-¥d{4}(¥.xlsm)?$
2017/07/25(火) 12:00:47.38ID:QW1aVSBc
>>240
有り難うございます!ばっちりです。
$マークを足すだけで良かったんですね。助かりました。
2017/07/25(火) 12:23:12.14ID:QW1aVSBc
差し支え無ければ、 ^AA\d{2}-\d{4}(\.xlsm)? だと

ND17-00001
ND17-00001.xlsm2

等々にもマッチしてしまう理由を教えていただけないでしょうか。
2017/07/25(火) 12:24:08.99ID:QW1aVSBc
ミス。AAでした。
AA17-00001
AA17-00001.xlsm2
2017/07/25(火) 12:38:31.42ID:0gI9u146
>>242,243
横からだけど
AA17-0000部分にマッチしちゃうんじゃない?
2017/07/25(火) 13:05:32.38ID:BGzbzmfB
^AA\d{2}-\d{4}(\.xlsm$)?

"^AA\d{2}-\d{4}" と "^AA\d{2}-\d{4}\.xlsm$" という意味
AA17-00001
AA17-00001.xlsm2
の "AA17-0000" の部分に前者がマッチする
"^AA\d{2}-\d{4}$" であればマッチしない
2017/07/25(火) 13:22:18.59ID:QW1aVSBc
なるほど。分かりやすく有り難うございます!
だから>>240で期待通りになるんですね。
頭固いと理解するのが大変です。。orz
2017/07/25(火) 13:29:36.02ID:oWvKCPb4
?は「直前のパターンが 0回または 1回登場する事」なので、そのパターン中に、$「行末」を含めてしまうと、(0回登場側で)効果が消えてしまう。
1人で書いてるとよくやるミスだと思う。
248デフォルトの名無しさん
垢版 |
2017/07/25(火) 21:26:32.07ID:lTcbRvTI
^AA\d{2}-\d{4}
は実は
^AA\d{2}-\d{4}.*$
だと考えれば理解の助けになるかも。ならないかも。
2017/07/26(水) 01:05:33.15ID:3rtPYRQF
^AA\d{2}-\d{4}(\.xlsm$)?

$?
行末の後ろに、? か。
この式は、見た瞬間に、おかしいとわかる
2017/07/26(水) 11:10:37.56ID:Vp/yahqk
>>249
文法的にも間違いでは無いだろ
2017/07/26(水) 13:08:28.96ID:9H6h7u80
>>250
文法的には正しいけれど、式としておかしい「と感じる事ができる」と言いたいんだと思う。
2017/07/26(水) 14:48:10.36ID:Vp/yahqk
>>251
式としても正しい
2017/07/26(水) 14:55:46.30ID:aH2YwDtv
250,252みたいなのをアスペっていうんだろうな
論点は式や文法として正しいか正しくないかではないって事ぐらい一目見れば分かりそうなもんだが
2017/07/26(水) 16:41:49.04ID:NnPMbS6q
きちんと整理すると目的に合わない正規表現が直感的に分かるエスパー能力
としか言いようがないし>>249がその能力者だとしても特に羨ましくもない
2017/07/26(水) 17:37:15.75ID:UlpW8N7A
例えば、エディタの検索等で強調表示する際の式としてなら何も不思議は無いが
プログラム中での判定式ならば後者は必ず前者にマッチするので意味を成さない
つまり無駄に冗長であったり何かミスをしている可能性が高い。そういう事でしょ
2017/07/26(水) 17:37:56.28ID:Sop8S35W
>>253
プログラマに多いタイプではある
257デフォルトの名無しさん
垢版 |
2017/07/26(水) 17:52:57.91ID:Bbl5PJto
問題は >>249 が何の役にも立ちそうにないということじゃないかな。
何を言いたいか想像できなくもないが、単に知らないだけという可能性もまた捨てきれない。
ここはそういう場所だ。
明確に「$ は末尾にだけ書くようにすれば間違いを防げると思うよ」とでも書けばよかったのに。
2017/07/26(水) 18:26:15.97ID:UlpW8N7A
まあ読点の打ち方とかみるにアホガキか底辺土方がドヤりたかっただけだろうから
そろそろそっとしておいておやり
2017/07/26(水) 19:38:32.33ID:VudXLbcK
臭う正規表現だと言えばいいのかな
2017/07/26(水) 21:03:00.43ID:JJ3vg08i
>>249は句読点の打ち方からも、おかしいとわかる

発端は正規表現は行を対象にマッチするものという偏見じゃないか
261デフォルトの名無しさん
垢版 |
2017/07/27(木) 08:25:22.52ID:JB/MQIbV
>>253
もう本来の問題は解決して、間違いを防ぐという話をしているところに >>249 だ。
いかにも頭悪そうだけど何しに来たんだというのが論点じゃないのか?
2017/07/27(木) 09:03:12.08ID:32ZlcHw6
よくこんなネタでいつまでも盛り上がれるな
2017/07/27(木) 10:22:50.72ID:FeDFxsXm
うむ
2017/07/27(木) 11:04:39.19ID:w0VKyQmM
そこら辺も含めてプログラマに多いタイプって事だ
話の流れや空気を読むのが苦手なタイプ
2017/07/27(木) 15:20:17.23ID:DvNlZLuV
>>264
辛辣ワロタ
2017/07/27(木) 18:27:44.41ID:t8Fq16Nl
2ch的にはまだ甘い方
267デフォルトの名無しさん
垢版 |
2017/07/27(木) 19:38:46.83ID:/VCkXAgy
プログラマって話の流れが読めないやつ確かに多い気がするけど、何でなんだろう。
プログラムとかって、流れを理解する事が重要じゃん?
2017/07/27(木) 21:11:31.82ID:oiygPPLB
プログラマーとひと口に言ってもピンキリ
使えないキリの方のコミュ障ボッチオタク系IT土方をバカにするネタでそういったのが多いから
そんなイメージが付いてるだけでしょ
業種に依らず底辺のゴミ共に通じるネタだったものが独り歩きしたんじゃない?

まあでも「流れや空気を読む」てのはファジーな判断能力でコミュニケーションの中で培われるから
人間関係よりも数学の方が楽って人には難しく、そういった傾向はあるのかも知れない
2017/07/27(木) 22:58:53.54ID:SUaLVh4Q
>>267
君、249か253じゃあないのかよ?
2017/07/28(金) 06:08:45.61ID:Xfxcd5ys
やっとスレチ終わった?
2017/07/28(金) 11:26:50.45ID:qIgprOUf
sageも知らずに書いてる人って同一人物なんだろうけど
自分が遠回しにディスられてる事にも気付いてなくて可愛い
ある意味幸せか
272デフォルトの名無しさん
垢版 |
2017/08/12(土) 17:55:36.45ID:cYclCetd
●Regular Expressionの使用環境
Java1.8

●検索か置換か?
検索

●説明
下記の部分を抽出したい
AV0bc-t3.jpg
B32bc4f.jpg

●対象データ(一部)
風景-20170503-AV0bc-t3.jpg
b5-two-mountain-B32bc4f.jpg


最初は-を区切りとして抽出できるかと思ったが
抽出対象の文字列にも-が登場することが判明して為万事休す状態です。
どうかご指導お願い致します。
273272
垢版 |
2017/08/12(土) 18:05:09.95ID:cYclCetd
>>272です
すいません。これどう考えても不可能ですね。
-ファイルについては手動でやってその他は正規表現で対応します。
失礼しました。
2017/08/12(土) 20:46:08.10ID:oUGtyFlO
不可能
2017/08/12(土) 21:05:50.58ID:wIgCsZkA
>>272
誤爆前提
(?<=\-)([A-Za-z\d]+\-?[A-Za-z\d]{0,3}\.jpg)(?=(?:\n|$))

[A-Za-z\d]{0,3}部の構成次第か?
まあ全部手でやるよりかはマシになるような気がする
276272
垢版 |
2017/08/12(土) 22:50:49.75ID:cYclCetd
>>275
ありがとうございます!!
まじで神です!相談して良かったです。
こういう人がお金をもらえる世の中になってほしいです。
本当に感謝します。あなたは誰よりも優しいです。
無償で人の為にがんばる人は本当に尊敬します!!
ありがとうございました!!
2017/08/12(土) 23:11:24.65ID:U/tP6VJk
該当文字列長の幅が決まっているなら{6,8}の数字を調整すればこれでいけるはず
(?<=-)[-A-Za-z\d]{6,8}\.jpg
2017/08/13(日) 03:23:49.05ID:SYaWjJhn
ファイル名には、半角英数字の他、「- _ .」と半角空白も、考慮しろ

こういうファイル名もある

a.txt.zip
2017/08/13(日) 04:21:48.64ID:dm/KZ1el
.tar.gzとかで良かったのでは
2017/08/13(日) 19:47:39.02ID:BX+CBZkv
2chのNGで、「URLが含まれる文章を除いた行が5つ以上あるレスをNG」という表記を作ることは可能ですか?
2017/08/13(日) 21:08:22.43ID:lg+GT5+n
>>280
日本語を(´・ω・`)
2017/08/13(日) 23:08:53.31ID:47VquCRx
gopher:とかmailto:とかか
2017/08/14(月) 03:10:00.43ID:FrfucSX4
>>281
前提
@正規表現を使い、2chのNG設定を行いたい
A専門板での長文荒らしをNGしたい
BURLが貼られたレスは長文であってもNGにしたくない
以上から、「URLが含まれる文章を除いた行が5つ以上あるレスをNG」をしたいです
この表記を作ることは可能ですか?
2017/08/14(月) 03:17:09.39ID:FrfucSX4
URLの定義を以下のようにしました
://([a-zA-Z0-9_/:;%#\$&\?\(\)~\.=\+\-])*
(://の後に英数字とURLに使われる記号が続く文字列)
これを[^]で括って否定にした後、任意の行数以上含まれるレスのNGをするという方向性で考えています
285デフォルトの名無しさん
垢版 |
2017/08/14(月) 16:30:05.91ID:yxoqAlkZ
^が否定と 先頭の2つの意味を持っていて
$ が 末尾と $1 $2 などのインデックスの意味を持っているとか
メタ文字の効果が重複しているのが混乱します。
どうすればいいですか?
2017/08/14(月) 16:37:59.81ID:IeoGyZA4
>>285
たぶん[^]で括って否定には出来ないと思うよ。
2017/08/14(月) 18:31:02.14ID:89kehc6V
Jane StyleでIDなしのレスだけ抽出するにはどうしたらよろしいでしょうか?
IDなしをNGにする方法はいくらでも出てくるのですが・・・
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況