Regular Expression(正規表現) Part14 [無断転載禁止]©2ch.net
■ このスレッドは過去ログ倉庫に格納されています
Regular Expressionスレです。
質問する場合は必ず実装言語や処理系ソフトウェア名を示してください。
前スレ
Regular Expression(正規表現) Part13
http://echo.2ch.net/test/read.cgi/tech/1415149975/
次スレは>>980宜しく
天ぷら等2以降 >>193
そんな感じがする
でも定着して何十年経過したからいまさら変更できない
直訳すると正則記法? 確かに数学的にはregularは正則でnormalが正規だけども
正規表現が正則式だの正則表現になったからといって何が分かりやすくなるでもなし 英語圏の人たちにとってもRegular Expressionと言われて
[ \s]* みたいなことか〜て思い浮かぶわけでもなかろ
単に「それを何と呼ぶか」つまり名前付けをどうするってだけのことだよ
ただ日本では(2chだけかもしれないけど)性器表現とか茶々入れる奴がいるのが面倒くさい 2chに限らずゲスな一般大衆の猿共は真っ先に性器と捉える
正規よりかは正則の方が良かっただろうけど
若い女の子へのセクハラに使えるから正規も捨て難い
まあ今時「せいき」の言葉にモジモジする女子なんて希少だが居なくは無い システム関係の仕事してるけど正規表現知ってるとホント仕事がはかどるわ
知らん奴いたら教えたくないレベルw >>209
正規表現を用いて置換と挿入を行った
だろ 質問です。
ttp://hayabusa3.2ch・sc/test/read.cgi/news/1498009569/
↑ここに、「それは文科省にとってリスクがあるわけですね。」っていう文章があります。
これをエディタで置換したいです。
秀丸エディタには半角化、全角化があるので、
「゙」を「゛」に、「゛」とその前を半角に、「゙」とその前を全角にと言う手順で全角濁音化することができます。
しかし、段階的に置換すると、[ニダ]と言う文字が[ニダ]となります。
専ブラでなく普通のエディタでメール欄に限定せず「゙」だけをちゃんと全角濁音化するにはどうしたらいいでしょうか。 変換関数をネストして、全角から直接全角に置換すれば大丈夫っぽいです。
スレ汚し失礼しました。 マクロを覚えるほど気力ないので。
せいぜいキーボードマクロまでですね。
メモ:
1回目「゙」→「゛」
2回目「[か-こさ-そた-と][゛]」→「\((0,ToHankaku),ToZenkakuHira)」 ID:fr6XvX0v3
DOSコマンドでいけるよ
【.cmd】 バッチファイルスクリプト %12 【.bat】
http://mevius.2ch.net/test/read.cgi/tech/1489207631/
なんかscに書けなくなった。
認証が延々と出てくる。 >>222
なるほど。
http://hide.maruo.co.jp/lib/hmconv/normalize101.html
> Unicode正規化を行ないます。
> パラメータとしてNFC、NFD、NFKC、NFKDが指定可能です。
Googlエ
> 合成形に正規化する方法を NFC(Normalization Form Composition) 質問します
●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])
までは考えましたがこれ以上力不足でわかりません よろしくお願いします (^.*?,).*?(?=[,¥n])
rea,CCCCのパターンが行末だとできないんだよなー。 ^([^,]*,)[^,\r\n]+
を
$1******
に置換
"a,b",defのようなものはダメだが >>226-227
ありがとうございます 上手くいきました
使わせていただきます&勉強材料にさせていただきます 質問です。
●Regular Expressionの使用環境
Java Script
●検索か置換か?
置換
●対象データ
abc:ABCDEFG
def:123456789
ghi:くぁwせdr
●希望する結果
上記のような複数行の文字列があったとして、
"123456789"を取り出すにはどのようにしたら良いでしょうか?
条件としては、行頭の"def"をキーにして、
「defで始まる行の、def:の次の文字から行末まで」を取り出したいです。
よろしくお願い致します。 後読みが使えないJSなら/def:(.*?$)/m
使えるなら/(?<=def:).*?$/m BBCの正規表現クイズ。たまにはこういうのも面白いね
ttp://www.bbc.co.uk/programmes/articles/5LCB3rN2dWLqsmGMy5KYtBf/puzzle-for-today >>230
こういう場合、先読みの方法でやるメリットって有るんですか?
初心者なんで教えて下さい。 >>232
後読みの部分にはマッチしない
つまり>>229で後読み使った場合には
123456789
にマッチするがそうでない場合は
def:123456789
にマッチする 後読みの説明はそうなんだけど、>>230 について訊いてるんでしょ?
俺も>>230の意図はよくわからん。行単位の処理を希望してるのにm付けてるし >>231
新しいなコレ!
面白いんでエクセルで入力できるフォーマットを作ってみた
http://www.dotup.org/uploda/www.dotup.org1307951.xls
(拡張子でうちのエクセルが激古なのがバレる…) 少しやって時間の問題だなと思って途中で切り上げて答見たけど
数文字しか合ってなかった
最後までやらなくてよかった ●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
最後の?を削れば、拡張仕込みであれば上手くいきますが良い方法は
ないでしょうか。 >>239
VBAの仕様は知らんけど、これでできない?
^AA¥d{2}¥-¥d{4}(¥.xlsm)?$ >>240
有り難うございます!ばっちりです。
$マークを足すだけで良かったんですね。助かりました。 差し支え無ければ、 ^AA\d{2}-\d{4}(\.xlsm)? だと
ND17-00001
ND17-00001.xlsm2
等々にもマッチしてしまう理由を教えていただけないでしょうか。 ミス。AAでした。
AA17-00001
AA17-00001.xlsm2 >>242,243
横からだけど
AA17-0000部分にマッチしちゃうんじゃない? ^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}$" であればマッチしない なるほど。分かりやすく有り難うございます!
だから>>240で期待通りになるんですね。
頭固いと理解するのが大変です。。orz ?は「直前のパターンが 0回または 1回登場する事」なので、そのパターン中に、$「行末」を含めてしまうと、(0回登場側で)効果が消えてしまう。
1人で書いてるとよくやるミスだと思う。 ^AA\d{2}-\d{4}
は実は
^AA\d{2}-\d{4}.*$
だと考えれば理解の助けになるかも。ならないかも。 ^AA\d{2}-\d{4}(\.xlsm$)?
$?
行末の後ろに、? か。
この式は、見た瞬間に、おかしいとわかる >>250
文法的には正しいけれど、式としておかしい「と感じる事ができる」と言いたいんだと思う。 250,252みたいなのをアスペっていうんだろうな
論点は式や文法として正しいか正しくないかではないって事ぐらい一目見れば分かりそうなもんだが きちんと整理すると目的に合わない正規表現が直感的に分かるエスパー能力
としか言いようがないし>>249がその能力者だとしても特に羨ましくもない 例えば、エディタの検索等で強調表示する際の式としてなら何も不思議は無いが
プログラム中での判定式ならば後者は必ず前者にマッチするので意味を成さない
つまり無駄に冗長であったり何かミスをしている可能性が高い。そういう事でしょ 問題は >>249 が何の役にも立ちそうにないということじゃないかな。
何を言いたいか想像できなくもないが、単に知らないだけという可能性もまた捨てきれない。
ここはそういう場所だ。
明確に「$ は末尾にだけ書くようにすれば間違いを防げると思うよ」とでも書けばよかったのに。 まあ読点の打ち方とかみるにアホガキか底辺土方がドヤりたかっただけだろうから
そろそろそっとしておいておやり >>249は句読点の打ち方からも、おかしいとわかる
発端は正規表現は行を対象にマッチするものという偏見じゃないか >>253
もう本来の問題は解決して、間違いを防ぐという話をしているところに >>249 だ。
いかにも頭悪そうだけど何しに来たんだというのが論点じゃないのか? そこら辺も含めてプログラマに多いタイプって事だ
話の流れや空気を読むのが苦手なタイプ プログラマって話の流れが読めないやつ確かに多い気がするけど、何でなんだろう。
プログラムとかって、流れを理解する事が重要じゃん? プログラマーとひと口に言ってもピンキリ
使えないキリの方のコミュ障ボッチオタク系IT土方をバカにするネタでそういったのが多いから
そんなイメージが付いてるだけでしょ
業種に依らず底辺のゴミ共に通じるネタだったものが独り歩きしたんじゃない?
まあでも「流れや空気を読む」てのはファジーな判断能力でコミュニケーションの中で培われるから
人間関係よりも数学の方が楽って人には難しく、そういった傾向はあるのかも知れない sageも知らずに書いてる人って同一人物なんだろうけど
自分が遠回しにディスられてる事にも気付いてなくて可愛い
ある意味幸せか ●Regular Expressionの使用環境
Java1.8
●検索か置換か?
検索
●説明
下記の部分を抽出したい
AV0bc-t3.jpg
B32bc4f.jpg
●対象データ(一部)
風景-20170503-AV0bc-t3.jpg
b5-two-mountain-B32bc4f.jpg
最初は-を区切りとして抽出できるかと思ったが
抽出対象の文字列にも-が登場することが判明して為万事休す状態です。
どうかご指導お願い致します。 >>272です
すいません。これどう考えても不可能ですね。
-ファイルについては手動でやってその他は正規表現で対応します。
失礼しました。 >>272
誤爆前提
(?<=\-)([A-Za-z\d]+\-?[A-Za-z\d]{0,3}\.jpg)(?=(?:\n|$))
[A-Za-z\d]{0,3}部の構成次第か?
まあ全部手でやるよりかはマシになるような気がする >>275
ありがとうございます!!
まじで神です!相談して良かったです。
こういう人がお金をもらえる世の中になってほしいです。
本当に感謝します。あなたは誰よりも優しいです。
無償で人の為にがんばる人は本当に尊敬します!!
ありがとうございました!! 該当文字列長の幅が決まっているなら{6,8}の数字を調整すればこれでいけるはず
(?<=-)[-A-Za-z\d]{6,8}\.jpg ファイル名には、半角英数字の他、「- _ .」と半角空白も、考慮しろ
こういうファイル名もある
a.txt.zip 2chのNGで、「URLが含まれる文章を除いた行が5つ以上あるレスをNG」という表記を作ることは可能ですか? >>281
前提
@正規表現を使い、2chのNG設定を行いたい
A専門板での長文荒らしをNGしたい
BURLが貼られたレスは長文であってもNGにしたくない
以上から、「URLが含まれる文章を除いた行が5つ以上あるレスをNG」をしたいです
この表記を作ることは可能ですか? URLの定義を以下のようにしました
://([a-zA-Z0-9_/:;%#\$&\?\(\)~\.=\+\-])*
(://の後に英数字とURLに使われる記号が続く文字列)
これを[^]で括って否定にした後、任意の行数以上含まれるレスのNGをするという方向性で考えています ^が否定と 先頭の2つの意味を持っていて
$ が 末尾と $1 $2 などのインデックスの意味を持っているとか
メタ文字の効果が重複しているのが混乱します。
どうすればいいですか? >>285
たぶん[^]で括って否定には出来ないと思うよ。 Jane StyleでIDなしのレスだけ抽出するにはどうしたらよろしいでしょうか?
IDなしをNGにする方法はいくらでも出てくるのですが・・・ >>288
浪人あればID消せるんじゃなかったっけ?
ID表示スレでも?
たまに見かけるんだけど、
じゃあ、どのスレ?と聞かれてもなかなか見つからない。
すいません、見つかるまでお待ち下さい・・・ もしくは
IDなしをNGにして、あぼーんのみ表示するとか >>291
すみません。今のところ該当スレが見つかりません。
目的としては、
優良エロ画像スレでたまにIDなしでグロ画像を貼る輩がいて、
IDなしのレスがほぼグロ画像ならIDなしをNGにするし、
IDなしでも優良エロ画像を貼ってくれてるならIDなしでもNGしないし・・・
という恥ずかしい理由なんです >>291
>IDなしをNGにして、あぼーんのみ表示するとか
これってどうやればいいんでしょうか? >>292-293
ここ正規表現スレだからJane質問スレに来て よろしければアドバイスください
●Regular Expressionの使用環境
正規表現で検索できるテキストエディタ
●検索か置換か?
検索
●説明
アンド検索で一つ目にマッチした文字列からn行以内にある二つ目の文字列までを抽出したい
●対象データ
林檎みかんバナナ
みかん林檎バナナ
林檎キウイみかん
バナナ林檎みかん
メロン林檎バナナ
メロンみかん林檎
みかんバナナ林檎
林檎みかんキウイ
林檎バナナみかん
●希望する結果
みかんバナナ
みかん林檎バナナ
林檎キウイ >>295の質問のつづきです
●自分で試したこと
今回は三行以内に「みかん」と「キウイ」の二つの文字列を含む部分 だけ を抽出したい
記述は以下のように書いてみたが、四行以上にまたがってマッチした部分まで抽出されてしまった
みかん([¥s¥S]*?)キウイ
●自分で試した検索ワード
「正規表現 複数行 文字列 検索 -秀丸」の組み合わせをいくつか試した
検索結果からプログラマーの質問回答サイトに飛んで似たように検索するも欲しい回答は見つからず n行なら可能だけどn行以内ってのは無理だと思う
つまり
1行の式|2行の式|…|n行の式
と書くしかないんじゃないかな ■ このスレッドは過去ログ倉庫に格納されています