Regular Expression(正規表現) Part16at TECH
Regular Expression(正規表現) Part16 - 暇つぶし2ch312:デフォルトの名無しさん
22/07/01 17:48:08.39 iqig0nNh.net
>>306
Notepad++、Meryでは以下でいけた
(.+店)[\s\S]*〒\d{3}-\d{0,4}\s(.+)$
$1,$2

313:298
22/07/01 17:51:33.51 FKzEqydA.net


314: rel="noopener noreferrer" target="_blank" class="reply_link">>>308 ありがとうございます。しかしダメでした。



315:298
22/07/01 17:53:57.09 FKzEqydA.net
しかし、
(.+店)[\s\S]*
ここまで削ると食いついてきます。

316:デフォルトの名無しさん
22/07/01 17:58:53.83 Dqsnfi22.net
複数行な時点で環境限られるよね

317:298
22/07/01 17:59:18.72 FKzEqydA.net
ちなみに、Notepad++、Meryどちらも無料ですが、インストールするとするとどちらがよいでしょうか?

318:298
22/07/01 18:08:28.54 FKzEqydA.net
ちなみに、Notepad++、Meryどちらも無料ですが、インストールするとすると正規表現的にはどちらがよいでしょうか?

319:デフォルトの名無しさん
22/07/01 18:09:36.54 C/EjaQqR.net
(?<=店)[^〒]*?〒\d{3}-\d{4}\s++
,
キャプチャする必要無くね?
対象データの例が悪い
他に何件もあって〒が無い場合があったりすると誤マッチするはず

320:298
22/07/01 18:15:22.87 FKzEqydA.net
>>314
ありがとうございます。しかし、 (?<=店) これにすら食いつきません。

321:298
22/07/01 18:58:55.44 FKzEqydA.net
Notepad++をインストールしました。
で、やりたいことは、
URLリンク(www.donki.com)
ここから、べーっとマウスでコピペして、
Notepad++に貼り付けて、店舗名,住所のcsvファイルを作りたいのです。

322:298
22/07/01 19:04:57.22 FKzEqydA.net
(?<=店)[^〒]*?〒\d{3}-\d{4}\s++
これでほぼ出来そうです。 ありがとうございます。

323:298
22/07/01 19:10:09.57 FKzEqydA.net
(?<=店)[^〒]*?〒\d{3}-\d{4}\s++
$1,$2
ちなみに、これって$1,$2という変数を使ってますよね?
(?<=店)[^〒]*?〒\d{3}-\d{4}\s++
この文のドコで代入してるのでしょうか?

324:デフォルトの名無しさん
22/07/01 19:16:15.59 TWCq9rfx.net
テンプレをヤイヤイいうだけの奴わろたわw

325:デフォルトの名無しさん
22/07/01 19:27:43.82 omlO1tMt.net
ページからならjsでやったら?って感じの話しだな
URLリンク(pastebin.com)

326:デフォルトの名無しさん
22/07/01 19:30:02.45 23LeTIBQ.net
xy問題

327:元 298様専用の便利屋
22/07/01 19:51:17.10 6Nj9t6DP.net
住所からアニメイトの同志だと思いご協力させて頂きましたがアニメイトではなくドンキだと分かったので
すみませんがこれ以上ついて行くことは出来ません・・ 短い間でしたがありがとうございました、さよなら

328:298
22/07/01 21:06:43.33 FKzEqydA.net
>>322
どうもです。 了解しました。
.+だと文字が何個あってもいいよ、です。
こういうので、
文字でも記号でも改行でも何個あってもいいよ、はないでしょうか?
あるとすれば、
店「」+住所
を、
,
に置換すればいいだけの話なんだけど。

329:デフォルトの名無しさん
22/07/01 22:01:19.33 TkUsKSE8.net
.(ピリオド)は改行コードを除く任意の1文字にマッチする
つまり.*や.+だと改行のところでストップするということ

330:デフォルトの名無しさん
22/07/01 22:28:36.91 oUsXu5GC.net
ピリオドはmオプションつけると改行にもマッチするやで
mオプションがついてるかは環境と指定したオプションによるやで

331:デフォルトの名無しさん
22/07/01 22:36:48.49 TkUsKSE8.net
mオプションじゃなくてsオプションなのでは?

332:デフォルトの名無しさん
22/07/01 22:50:04.22 oUsXu5GC.net
調べてきた
mオプションはRuby、oniguruma系、Meryはこれのはず
sオプションなのはPerl系
Notepad++/SciTEは専用オプションがある
らしい、やってみて確かめたほうがいいね

333:298
22/07/01 23:07:58.13 FKzEqydA.net
ありがとうございます。では、
店.+東京都
に、mオプションを付けるとするとどう書けばいいのですか?
↓にはそれ系の記載がありません。
URLリンク(murashun.jp)
https://


334:userweb.mnet.ne.jp/nakama/



335:デフォルトの名無しさん
22/07/01 23:25:18.67 oUsXu5GC.net
Notepad++のことならGUIのダイアログの左下の右に「.は改行と一致」てのがあるじゃろ

336:298
22/07/01 23:40:21.16 FKzEqydA.net
>>329
ありがとうございます。Notepad++で、「.は改行と一致」にチェックをいれて、
店.+東京都
,
で、次を検索でポチると、
最初の東京都ではなく、最後の東京都、つまりほぼ全文を選択してしまいます。

337:デフォルトの名無しさん
22/07/02 00:04:51.39 BdV6t7uW.net
正規表現の基本は強欲
なるべく長い文字列にマッチしようとする

338:デフォルトの名無しさん
22/07/02 09:05:29 mrmEg2+h.net
> 基本は強欲

20年このスレにいて初めて知りました

339:デフォルトの名無しさん
22/07/02 09:58:17.51 At3W7bIA.net
20年正規表現使ってて強欲すぎて困ったことないの?
※ 用語として強欲はあまりいい意味には使わないから個人的には貧欲の方がいいなぁ

340:デフォルトの名無しさん
22/07/02 10:08:22.29 N6Y3zR8M.net
ひんよく? 貧
どんよく 貪欲

341:デフォルトの名無しさん
22/07/02 10:24:47.75 ophljRqK.net
そんなとっくに概出のこと言われても困ります

342:デフォルトの名無しさん
22/07/02 12:38:50 mrmEg2+h.net
貧欲の動作は考えてみればすごく非効率な気がしますね
10万文字の文章に対して「.*」を使ったら10万文字の末尾まで食ってから戻ってきますからね

343:デフォルトの名無しさん
22/07/02 13:18:37.74 At3W7bIA.net
>>334
すまん、素で間違ってたわ... orz

344:デフォルトの名無しさん
22/07/02 15:23:26 +K04BJMF.net
*+ 強欲 ++ 最大一致させたらバックトラックしない
* 欲張り + 最大一致させた後、残りの式が不一致になったらバックトラックする
*? 無欲 +? 欲張りと逆。最小一致後にバックトラック

バックトラック
条件を満たす範囲で探索
・欲張りは1文字放棄
・無欲は1文字追加
して試行する

345:298
22/07/02 18:24:54.77 rrBNdWeF.net
てか、↓の文法的解説をできる方はこのスレにはいないのでしょうか?
(?<=店)[^〒]*?〒\d{3}-\d{4}\s++

346:デフォルトの名無しさん
22/07/02 18:51:12 +K04BJMF.net
(?<=店) 戻り読み。式(店)と次の文字の「間」の位置に一致。abcに対し(?<=ab)ならbとcの間に一致する。アンカー(^$)と同様
[^〒]*? 「〒」以外の文字に最小一致(無欲)
〒 「〒」の文字
\d{3}-\d{4} 「数字3つ」「-」「数字4つ」
\s++ 「\s」に最大一致(強欲)

347:298
22/07/02 18:58:50 rrBNdWeF.net
>>340
ありがとうございます。
$1に(?<=店)を代入しているのはなんとなく理解できるのですが、住所の$2にはどの部分で代入しているのでしょうか?

348:デフォルトの名無しさん
22/07/02 19:30:02.98 UTWJe5+B.net
[^〒]*?〒は最小量指定子使わないで、[^〒]*〒でよいのでは?
この*は0回以上の「〒以外」の文字にマッチだから、貪欲であっても貪欲でなくても、結局一番初めに出てくる「〒」手前までしかマッチできない。

349:デフォルトの名無しさん
22/07/02 19:38:03.70 UTWJe5+B.net
>>336
貪欲のほうがコストが常にかかるかというとそうじゃない。
場合によっては非貪欲のほうが大量にバックトラックが発生して計算コストかかることもある。

350:298
22/07/02 19:41:17.46 rrBNdWeF.net
てか、不思議なことに、
1、検索文字列→ (?<=店)[^〒]*?〒\d{3}-\d{4}\s++   置換文字列→ ,
2、検索文字列→ (?<=店)[^〒]*?〒\d{3}-\d{4}\s++   置換文字列→ $1,$2
で、同じ結果が出るんです

351:298
22/07/02 19:42:31.78 rrBNdWeF.net
つまり、2は文法的に間違ってる、ってことですかね?

352:298
22/07/02 19:45:54.43 rrBNdWeF.net
てか、Notepad++はカシコイから、
置換文字列→ $1,$2
を、
置換文字列→ ,
と、置き換えて処理してるんですかね?

353:デフォルトの名無しさん
22/07/02 19:46:39.19 +K04BJMF.net
面白いから見守るわw

354:デフォルトの名無しさん
22/07/02 19:57:48.35 +K04BJMF.net
>>342
一致しない場合に無駄にバックトラックさせることになるだけなので
[^〒]*+〒
と強欲で良いんじゃね

355:デフォルトの名無しさん
22/07/02 21:11:04.97 FJKEiIOc.net
>>348
確かにマッチしない場合にバックトラックの発生を抑えるために強欲にするのはありだと思う。
ただ、PCREとかだと[^〒]*〒の場合、Auto Processが動作して勝手に強欲化するから書かなくてもいいはず。
今回のEditorはしらんけど。

356:デフォルトの名無しさん
22/07/03 11:46:22.30 DiSdIFQe.net
初心者のうちは強欲は使わないほうがいい気がする
そもそも鈍器のページから店名と住所を取り出すだけの正規表現を書く場合にキャプチャしない書き方や
バックトラックを抑制する書き方をする必要はない
「策士策に溺れる」になってるから質問者に何を教えるべきなのかもう一度考えるべし

357:デフォルトの名無しさん
22/07/03 12:00:27.48 J9cIk4yD.net
貪欲禁止って*や+を使うなってことけ?

358:デフォルトの名無しさん
22/07/03 12:44:06.06 HH+h1Cia.net
possessiveのことだろ

359:デフォルトの名無しさん
22/07/03 13:50:59.22 J9cIk4yD.net
手足をもぎ取られた気分や…

360:デフォルトの名無しさん
22/07/03 14:32:42.77 nkFK6+7O.net
>>350
初心者が強欲使わないでいつ強欲の動作を知るの?
それとも初心者はみんな量指定子を持つ環境を使うべきって主張かな?

361:デフォルトの名無しさん
22/07/03 15:36:23.88 ZjFQgG61.net
> 使わないほうがいい気がする
「気がする」でついつい無駄コード書いちゃう強迫性不安障害の人かな?
> 「策士策に溺れる」になってるから質問者に何を教えるべきなのかもう一度考えるべし
底辺コーダーが良く使う言い訳
(俺に分かりやすい) 平易なやり方しか認めない!(`・ω・´)キリッ

362:デフォルトの名無しさん
22/07/03 17:56:24.35 DiSdIFQe.net
正規表現を考えるときには複雑な情報を単純化する作業が必要になるんだがそういう意味では質問者のほうが才能がある
「店」と「東京都」という2つのキーワードさえ見つけられれば目的を果たせることを見抜いていた
それに対して回答者たちは単純だった依頼を複雑化させたあげく質問者を困らせ続けた
戻り読みを正規表現の先頭に置いてキャプチャを回避することが本当に処理量の軽減になっているのかも疑問
鈍器のページからテキストエディタで店名と住所を取り出すだけの作業に正規表現の高速化を考えるのはもはやコント
君らには問題を単純化する能力が足りないからその点を改善せよ

363:デフォルトの名無しさん
22/07/03 18:00:06.22 ZjFQgG61.net
>>356
>>340
店の直後から郵便番号まで、と十分に単純だと思うが君はこれが複雑なものに見えるのかな?

364:デフォルトの名無しさん
22/07/03 18:09:59.22 hqJYlR9w.net
>>356
取り敢えず君は書く文章を改善しよう
殆ど愚痴だよねそれ

365:デフォルトの名無しさん
22/07/03 18:20:19.30 K4HcDkkQ.net
どうしようもないケースを除いて「東京都」なんてのをハードコーディングするのは筋が悪いと言わざるを得ない

366:デフォルトの名無しさん
22/07/03 18:23:09.07 BZUl5BA7.net
それはともかく、キャプチャグループが無いのに気づいてないのを指摘してあげろよ
$1,$2に対応するものがないので両方ともヌルになってる

367:デフォルトの名無しさん
22/07/03 18:34:54.70 BC52HWP8.net
>>344
>>346
不思議だとかカシコイだとか面白すぎるんですけどw
それ書いてる>>314には$1なんてどこにも書いて無いのにw

368:デフォルトの名無しさん
22/07/03 19:05:13.97 ur8aI9T4.net
>>356
>>351,354についての答えが欲しい

369:デフォルトの名無しさん
22/07/03 19:53:34.01 RqS+SurZ.net
文章からして発達障害とかそのボーダーでしょ
鉄道マニアとか特撮マニアに多いタイプのガイジ

370:デフォルトの名無しさん
22/07/03 19:57:25.2


371:6 ID:THTbKALg.net



372:デフォルトの名無しさん
22/07/03 19:58:39.99 BZUl5BA7.net
351は論外だろ
強欲を貪欲に変えてるし

373:デフォルトの名無しさん
22/07/03 20:14:59.04 Qz5VC9/y.net
>>365
正規表現のコンテキストにおいて、強欲と貪欲にどんな違いがあるか教えて

374:デフォルトの名無しさん
22/07/03 20:15:30.32 nkFK6+7O.net
>>365
正規表現に関してはどっちも同じ
なぜなら元の英語greed(greedy)の直訳だから
辞書引けばわかるとおり、greedは強欲であり貪欲でもある

375:デフォルトの名無しさん
22/07/03 20:29:11.54 BZUl5BA7.net
言葉尻を捕らえても意味ないぞ
+,*を強欲とは言わん

376:デフォルトの名無しさん
22/07/03 20:37:36.27 BZUl5BA7.net
greedyは貪欲(欲張り)
Possessiveが強欲

377:デフォルトの名無しさん
22/07/03 20:38:07.23 7Xq6ZsUF.net
「強欲」と「最長一致」が別物ってことすら理解しないまま変な自説を垂れ流してることに気付いてないんだろうなあ
332あたりの皮肉もまったく通じてないみたいだし

378:デフォルトの名無しさん
22/07/03 20:38:53.41 BZUl5BA7.net
あれ、>>352で指摘されてるじゃん

379:デフォルトの名無しさん
22/07/03 20:39:33.16 nkFK6+7O.net
>>368
正規表現を理解してない自慢しなくていいから

380:デフォルトの名無しさん
22/07/03 20:45:47.16 nkFK6+7O.net
>>369
日本語に於ける欲深さは強欲>貪欲ってこと?

381:デフォルトの名無しさん
22/07/03 20:48:18.70 BZUl5BA7.net
具体例を挙げないとダメなのか?
ググることさえしないのか?
強欲の表現は
?+
*+
++
{n}+
{n,}+
{n,m}+

382:デフォルトの名無しさん
22/07/03 20:51:34.49 nkFK6+7O.net
納得いった
possessiveを強欲とした誤訳に基づく誤解だな
possessiveを強欲だと捉えてる人は331を誤りだと捉える、
翻ってgreedy, possessiveで理解してる人は貪欲と強欲が変わって何がおかしいのかすらわからない

383:デフォルトの名無しさん
22/07/03 20:53:24.55 DiSdIFQe.net
単純な話が複雑になってきたがこういうのが良くないんだ、プログラミングや正規表現をするなら特にな
単純な話になる方向にもっていくことを考えるべし
強欲の話を複雑化しようとしてる奴を見ればアホに見えるだろう、誰とは言わんが

384:デフォルトの名無しさん
22/07/03 20:55:43.09 u4Kf+yAq.net
>>369
それどこのQiitaに書いてあったん?w

385:デフォルトの名無しさん
22/07/03 21:00:18.88 BZUl5BA7.net
正規表現では強欲といえば何を想起するのかってのは常識だよ
英語自慢はいいけど日本語も勉強してね

386:デフォルトの名無しさん
22/07/03 21:04:50.41 gASOhw8R.net
鬼車 欲張り(greedy)/無欲(reluctant)/強欲(possessive)
詳説正規表現第2版 欲張り/非欲張り/強欲量指定子
詳説正規表現第3版 欲張り(greedy)/控え目(lazy)/絶対最大量指定子(possessive)
入門正規表現 欲張り/控えめ/独占的
貪欲???

387:デフォルトの名無しさん
22/07/03 21:06:06.84 nkFK6+7O.net
常識って偏見の塊でしょ知ってる

388:デフォルトの名無しさん
22/07/03 21:09:06.26 BZUl5BA7.net
じゃあ、強欲でgreedyを指す日本語の解説をどこか例示してくれ

389:デフォルトの名無しさん
22/07/03 21:15:22.52 nkFK6+7O.net
そんなもの不要でしょ
国語事典に於いては強欲と貪欲に序列はない
英和辞典に於いてはgreedyは強欲ならびに貪欲
和英辞典に於いては強欲も貪欲もgreedy
むしろpossessiveの方こそ欲張りとか独占的って意味になる
そういう意味では入門正規表現の表記が正しいと言えるかもね

390:デフォルトの名無しさん
22/07/03 21:20:26.16 BZUl5BA7.net
正規表現に関してはどっちも同じ、正規表現を理解してない
と言った口で正規表現の専門用語じゃなくて日本語として云々と言うか?
強情ッ張りにも程があるな

391:デフォルトの名無しさん
22/07/03 21:32:22.16 nkFK6+7O.net
>>383
ヘルプで学んだから強欲とか貪欲とか書かれてなかったしね
greedyだのlazyだの辞書引きながら覚えた身からすりゃ貪欲も強欲も同じ意味なのもわかるだろ?
強欲と言えば何を想起するかって正規表現の常識はどこで学んだの?原書とか読まないタイプ?

392:デフォルトの名無しさん
22/07/03 21:33:16.77 JPaw0m1w.net
>>375
スッキリした
possessiveを強欲と訳した人がいたんだね

393:デフォルトの名無しさん
22/07/03 21:37:15.00 JPaw0m1w.net
possessiveって「独占欲が強い」って意味だから
含意も伝わる入門正規表現の「独占的」が一番いい訳だと思う

394:デフォルトの名無しさん
22/07/03 21:38:14.39 BZUl5BA7.net
強欲というのを専門用語にしてるわけだから誤訳と言っても仕方ないだろ
誤訳だから俺だけは強欲と貪欲は同じ取り扱いをするよで世間で通じるとでも思ってるのか

395:デフォルトの名無しさん
22/07/03 21:39:37.19 BZUl5BA7.net
>>385
他の訳にしてるところもあるのは知ってるが
強欲をいう言葉を出してgreedyのことだと解説してるところは皆無だと思ってる
反例よろしく

396:デフォルトの名無しさん
22/07/03 21:42:08.05 THTbKALg.net
lookaheadの「先読み」はいいけど、
lookbehindの「後読み」も悪しき訳だよね
「戻り読み」の方が方向が理解しやすい

397:デフォルトの名無しさん
22/07/03 21:55:07.74 B7Hb5nx0.net
possessiveが強欲と訳されてるのは、たぶんJava界隈で「possessive (very greedy)」と表記されていたのが「強欲」と訳されて、『詳説正規表現第2版』でもその訳が採用されて広まったのかな
個人的にはうまい訳だと思うけど、英語から入った人が混乱するのは理解できる

398:デフォルトの名無しさん
22/07/03 22:44:39.24 R6EXpQG5.net
>>379
正規表現技術入門 欲張り/控え目/強欲
正規表現辞典改訂新版 最長一致(longest match)、欲張り、貪欲(greedy)/最短一致(shortest match)、無欲(reluctant)/強欲(possessive)

399:デフォルトの名無しさん
22/07/03 22:55:10.77 hD5VDdvY.net
最長最短でいいわ

400:デフォルトの名無しさん
22/07/03 23:12:37.67 RqS+SurZ.net
各日本語名は鬼雲方式でいいわ
URLリンク(github.com)

401:デフォルトの名無しさん
22/07/03 23:31:21.62 C1pvOjRy.net
lookahead 未来読み、lookbehind 過去読みなら、分かりやすかった
先読み・後読みの、先・後が分からない

402:デフォルトの名無しさん
22/07/03 23:46:52.53 C1pvOjRy.net
greedy, reluctant はよく見るけど、
possessive 強欲は知らない
絶対最大量指定子なら見た事がある

403:デフォルトの名無しさん
22/07/04 01:04:08.73 ILSPAQNd.net
Microsoftとかjavaとか強欲を使ってるね
もし本当に知らないというのなら無知すぎると言わざるをえない

404:デフォルトの名無しさん
22/07/04 17:32:20.05 ri3Dm2ZG.net
日本語で正規表現に関して議論するなら知っておいてほしい気はするけど、
訳語を一つ知らないだけで無知とか言わなくても…
例えばperlreは2011年に「強欲な」が「絶対最大量」の表記に変更されているようだし、
触ってきた言語によっては強欲って訳に馴染みが無いのかも

405:デフォルトの名無しさん
22/07/04 18:06:20.41 oo1ug/2U.net
>>388
ストローマン!ストローマンじゃないか!

406:デフォルトの名無しさん
22/07/04 18:31:29.79 5WegoFeO.net
possesiveを強欲と呼ぶのは明らかな誤訳だし
greedyと勘違いするリスクも低くないんだから使わないほうがいい
同じようにgreedyを強欲と呼ぶのもリスクあるから避けるべきだね

407:デフォルトの名無しさん
22/07/04 19:19:19.95 rQV6IDNU.net
perldoc.jpでは「non-greedy」を「非貪欲、貪欲でない」、「non-possessive」を「強欲でない」としていますね

408:デフォルトの名無しさん
22/07/04 20:10:42.89 ckHiziij.net
「ひんよく」の人なら「きょうよく」と読んでしまいそうだしな
「独占的」がベストだという結論ならそれを広めようと思うがどうだろうか?

409:デフォルトの名無しさん
22/07/04 20:35:20.72 PN4eFOxq.net
貪婪/勉強、逐歩/独占、占有、独吐
食べきった文字を二度と吐き出さない=獨吐

410:デフォルトの名無しさん
22/07/04 20:35:46.95 4rkDJ26


411:m.net



412:デフォルトの名無しさん
22/07/04 20:50:18.31 oo1ug/2U.net
強欲からpossessiveを連想するのが難しい以上、
possessiveを強欲とするのが適しているとはとても思えない

413:デフォルトの名無しさん
22/07/04 21:21:35 4rkDJ26m.net
それは英語に「欲張り」と「強欲」のニュアンス違いに相当する言葉が無く
どちらもgreedyになってしまうからpossessiveと置いているだけの話で
逆輸入してあちらさんの言葉に合わせるよりは
より本質的に合った言葉を当て嵌める方が理解しやすいし、訳としても正しい

414:デフォルトの名無しさん
22/07/04 21:22:02 5E8qS6xJ.net
いつまでやってんだ?

415:デフォルトの名無しさん
22/07/04 21:26:25.77 oo1ug/2U.net
昔話の欲張り爺さんは強欲爺だろ?
日本語だって欲張りと強欲に序列なんてないだろ
そも強欲は宗教用語だし

416:デフォルトの名無しさん
22/07/04 21:29:14.26 CMsCi2w4.net
?サッカーでボール所有率をポゼッション(Possession)と表現するよ

417:デフォルトの名無しさん
22/07/04 21:42:50.78 ckHiziij.net
正規表現という名前自体も正則表現が正しいとよく言われるが正規表現と呼ばれ続けてるね
一度浸透してしまったら変更するのは容易ではないね
ほとんどの人にとっては強欲か独占的のどちらがいいかなんて「意味の違いなんかどうでもいい!変えるな!」だろうな
独占的 (旧名: 強欲)
というように注釈を付けながら変えるのが理想的だが果たして各方面に受け入れてもらえるのだろうか?

418:デフォルトの名無しさん
22/07/04 21:51:29.57 CMsCi2w4.net
ネスレはレギュラーコーヒーに戦いを挑んでないみたいだけど、
インスタントコーヒーに取って代わるべくレギュラーソリュブルコーヒー推しだよね

419:デフォルトの名無しさん
22/07/04 22:00:36.67 sR2pocrJ.net
ネッスルの方がなじみ深い

420:デフォルトの名無しさん
22/07/04 22:06:35.42 7wZS5m0B.net
違いがわかる男の正規表現

421:デフォルトの名無しさん
22/07/04 22:10:57.58 at368eXu.net
ポゼッシブを強欲と呼んでる人がいるのこのスレで初めて知ったよ
強欲の英訳はほぼ100%greed/greedyになるから絶対やめた方がいい

422:デフォルトの名無しさん
22/07/04 22:18:25.27 Fzsxp6Q8.net
>>413
possess v. って単に所有する、っていう意味なのにね

423:デフォルトの名無しさん
22/07/04 23:33:58.60 Tw6HV9Rf.net
なにも日常語のpossessiveを強欲と訳しているのではない
「握ること」=「米の球」という誤訳が同じ物🍙を指すことで意訳になるのと同じで、
正規表現においてはpossessiveと強欲と絶対最大(量指定子)という語は定義によって同じ物を指して、対応する用語になっているというだけ
やたら英訳にこだわっている人は、possessiveという用語に対応するキーワードのひとつである強欲を知らずにgreedyと英訳してしまった無知をごまかしているように見える

424:デフォルトの名無しさん
22/07/05 00:14:37 Pgzcl5cT.net
>>415
「米の球」を黒焦げに焼いたらtarballになる、まで読んだ

425:デフォルトの名無しさん
22/07/05 10:52:26 K5Eu4yGw.net
>無知をごまかしているように見える

この人の感受性がおかしいと感じたのは俺だけだろうか、やたら人のことを悪く見ようとしてないか?
知らない人に対する潜在的な恐怖心がこういう発言になるのかな?分からんがみっともないからやめたほうがいい

426:デフォルトの名無しさん
22/07/05 11:08:04.06 sc95gC5i.net
議論は別にすきにしろよと思うが人格否定や揚げ足取りは荒れる元だからやめろ

427:デフォルトの名無しさん
22/07/05 11:41:54.88 cG0ybmcU.net
>>417
そらそこは反論を期待して英訳に固執する人を揶揄してわざと悪し様に言ったところだからな、図星だったなら謝るよ
でもまさか本題には一切触れず蛇足だけに突っ込んで人格の否定までして論点をずらすような真似をされるとは思わなかった、よほど気に障ったのだろうか
あ、反論があるなら本題の方をメインで頼むな、他の人に迷惑でみっともないからね

428:デフォルトの名無しさん
22/07/05 12:00:26.75 364oCHD3.net
>>416
おっと焼きおにぎりの悪口はそこまでだ

429:デフォルトの名無しさん
22/07/05 13:10:32 /Cj5WPzT.net
当て身は打撃のことじゃないって言い張る格ゲープレイヤーみたい

430:デフォルトの名無しさん
22/07/05 13:38:26 K5Eu4yGw.net
その攻撃性と被害妄想的な受け取り方はどうにかならんの?普通に会話すればいいだけだと思うのだが
このレスを読んでも攻撃されてると思うの?

431:デフォルトの名無しさん
22/07/05 13:44:47 SfuXrTgV.net
その精神病を当て擦るような言い方

432:デフォルトの名無しさん
22/07/05 16:42:32.77 9eeXBGst.net
>>ID:K5Eu4yGw
議論で熱くなって中傷が混じるのは褒められないことではあるがある程度は容認出来る
おまえは議論の本題に触れもせず、中傷、人格攻撃だけのレス
この違いが分かる?
中傷したいのなら議論の本題に上手く絡めて、やれ

433:デフォルトの名無しさん
22/07/05 17:00:54.47 8BLlx4g8.net
>>415
>正規表現においてはpossessiveと強欲と絶対最大(量指定子)という語は定義によって同じ物を指して、対応する用語になっているというだけ
それが問題だよねって話をしてるんでは?
正規表現においてpossessiveのことを強欲と呼ぶのは適切ではないという主張に対する反論にはなってないように見えるけど?

434:デフォルトの名無しさん
22/07/05 17:21:05.39 hw2faXZs.net
●Regular Expressionの使用環境
サクラエディタ2.3.2.0(bregonig.dll 4.20 with 鬼雲6.2.0)
●検索か置換か?
検索
●説明
\sの結果にUnicodeのスペースは全て含めたいが
Unicodeの改行(LF,CR,CRLF,NEL,PS,LS)は含めたくない。
(UNICODEの改行は厳密にはVTとFFが含まれると思いますが
URLリンク(www.unicode.org)
できれば今回はVTとFFは例外で改行ではないスペース扱いにしたいです)
●対象データ
UTF-8テキストファイル
小U+0020迫LF(U+000A)
松U+0009本CRLF(U+000D U+000A)
高U+3000田NEL(U+0085)
●希望する結果
半角スペース
水平タブ
全角スペース
※単純に\sで検索すると都合6箇所マッチしてしまうので、
(サクラエディタが改行コード扱いする)Unicodeの改行(LF,CR,CRLF,NEL,PS,LS)を
マッチ対象から除外して3箇所だけにマッチする正規表現が知りたいです。

435:デフォルトの名無しさん
22/07/05 17:22:13.40 9eeXBGst.net
> possessiveのことを強欲と呼ぶ
飽く迄、英語をベースに日本語へ訳したいワケね
そういう解釈をしてるからおかしく感じるのだろう
日本語の欲張りに対しての強欲に相当する語が無いから英語ではpossessiveを充てている
英語側の単語が貧窮な都合だ

436:デフォルトの名無しさん
22/07/05 17:43:33.84 9eeXBGst.net
>>426
文字集合の積演算
[\s&&[^\r\n\x0085]]
これにPS,LSも含めればいい

437:デフォルトの名無しさん
22/07/05 17:56:41.32 4sOf+wSV.net
>>427
日本語も欲張りと強欲はどちらも欲深いことを言っているだけで、
欲の深さを示してはいないよ
近いと近距離、どっちの距離が離れているかを示せないないのと同じ
さらに言えば
逆に英語では明確に区別された語(greedy?|possessive)を、
明確に区別できない語([貪|強]欲)に置き�


438:ゥえたのが問題 直訳・意訳ですらない置きかえ 日本語に対して英語を充てたとそう勘違いしてる?



439:デフォルトの名無しさん
22/07/05 18:10:02.38 K5Eu4yGw.net
>英語の人
なんか申し訳ないね、せっかく英語の意味の違いを教えてくれたのにこんなことになってしまって・・代わりに謝るよ、ごめんね
俺も強欲という名前は間違いだと思う、教えてくれてありがとね

440:デフォルトの名無しさん
22/07/05 18:23:23.60 9eeXBGst.net
> 欲張りと強欲はどちらも欲深いことを言っているだけ
そりゃどちらにも「欲深い」の意があるだろう
だがその2つが並んで違いを理解出来無いのならおまえの日本語力に問題がある
普通に日本語を扱える者ならば「強い」を含む側に強い意味合いが込められていると解する
自分が分からなかったからと言ってケチ付けて自己肯定、「俺が悪いんじゃない」するのはみっともない

441:デフォルトの名無しさん
22/07/05 18:29:53.51 4sOf+wSV.net
>>431
そうか、「強」が付いてると強いのか知らなかった
強奪と収奪は強奪の方がより奪えるって理解でいいのかな
勉強になる

442:デフォルトの名無しさん
22/07/05 18:41:45.68 KH2ZmSBP.net
>>427
英語をベースにしないならそれこそrice ballのようにもっと適切な命名があるでしょ
プログラミング分野においてgreedyを貪欲/強欲/欲張りと訳すのが定番化してる中で
正規表現の場合だけは強欲は貪欲とは意味が違うというのが無理筋で悪い命名でしかない
フクロウ本の第3版で変更されてるのも強欲だと違いが分かりにくい/紛らわしいからだと思うよ
いい命名ではないけど貪欲に対して超貪欲とかならまだ賛同できた

443:デフォルトの名無しさん
22/07/05 18:41:56.55 4sOf+wSV.net
ちなみに日本語には無欲と[貪|強]欲の間に[小|少]欲ってのがあって、
こっちは明確に欲が少ないと定義されてるんだが、
普通に日本語を扱える者は「小さい」あるいは「少ない」欲の対義語として
「強い」欲となることに違和感を持たないものかな?
…とここまで書いて気付いたけど、貧と強が欲の深さを表してると思ってたってことか
かわいいね

444:デフォルトの名無しさん
22/07/05 19:04:14.64 K5Eu4yGw.net
昔は強欲でも困らなかったんだろう、しかし時代は変化していくからな
日本人にとって英語がより身近になれば英語から見ておかしい訳は淘汰されていくだろう
野球のカウントが S B O から B S O の順に変わったのと似てる、野茂以前では S B O で何の不都合も無かった
メジャーリーグを大リーグと呼ぶ訳は英語が分かる人から見てどう思うのか少し気になるw

445:デフォルトの名無しさん
22/07/05 19:04:56.60 TINjq0RZ.net
>>430
私(415,419)に対する人格攻撃や精神疾患への当て擦りととられる発言まで晒しておいて自身の行為は謝罪しないのな
一般に貪欲も欲張りも強欲もまとめてgreedなのもpossessiveが強欲でないこともあなた以外全員知ってた
その上で用語として定義されたものを訳とみなしたときの気持ち悪さについて議論している
絶対最大の英訳がpossessiveとかそれこそあり得ないだろ?

446:デフォルトの名無しさん
22/07/05 19:05:56.36 9eeXBGst.net
> 強奪と収奪
「奪う」はどちらも同じ
収は集める意が含まれる
強奪の強は「強引に」の意
ひったくりは収奪よりは強奪
村やビル占拠して人質脅して金品出させるようなのは「集める」ので収奪
収奪だって「奪う」ので「強制」的、強奪ではあるが「集める」方をより強調させた言葉
あと言葉はふわっとしてるもので意味するところはある程度の範囲がある
「奪う」の意が同じなのでどちらでも問題が無い場合もあるだろう
だが
> その2つが並んで違いを理解出来無いのなら
と書いたように両者を用いているのであれば、そこに違いがあって当然なわけで普通はその差異を汲み取れる

447:デフォルトの名無しさん
22/07/05 19:31:46.72 K5Eu4yGw.net
>>436
いや俺そこまでのことは言ってないと思うのだが
そんなつもりではなかったのでそれ以上に受け取ったなら謝るよ、ごめんね
>絶対最大がpossessive
日本語から英語への翻訳がこれだったら変だと思うね

448:デフォルトの名無しさん
22/07/05 19:45:12.44 4sOf+wSV.net
>>437
> 強奪の強は「強引に」の意
そういうことまでわかっていながら強欲についは頑なに強いと思ってるその認知はどこから来てるんだろう
大欲じゃいけない理由も知りたい

449:デフォルトの名無しさん
22/07/05 19:52:54.12 9eeXBGst.net
> 強欲についは頑なに強いと思ってるその認知は
>> その2つが並んで違いを理解出来無いのなら
が理解出来無い?
『「欲張り」と「強欲」が併用されている場合』に
どちらが強い意味合いを持つのかは一目瞭然な訳だが
まだ続けるの?

450:デフォルトの名無しさん
22/07/05 20:03:46 9jUwBfIC.net
SunやMicrosoftが使ってる以上、意味はどうあれ専門用語として取り扱うべきである
俺は嫌だから使わないってのはいいけど
他人が使ってるのをそんな言葉知らんぞ、間違ってると指摘するのは異常人

451:デフォルトの名無しさん
22/07/05 20:05:32 4sOf+wSV.net
>>440
思い込みじゃなくそうと示された他の資料を欲しい
一目瞭然なら当然どこかしらに示されてるだろうけど、
webの辞書や記事と手元の辞書ではその差を確認できなかったから

452:デフォルトの名無しさん
22/07/05 20:07:09 4sOf+wSV.net
>>441
MSはかつてそういう指摘に応えて使用する用語を変えてきた実績があるよ
一度決めたら二度と変わらないって会社ではない

453:デフォルトの名無しさん
22/07/05 20:11:53 4sOf+wSV.net
>>441
Oracleは日本語を正とせず英語を正としろって立場を採ってるよね
誤訳がありうるってことだし、誤訳によりライセンス内容の整合性がとれなくなったMSの事例もあるね

454:デフォルトの名無しさん
22/07/05 20:25:49 mmXAp8Yt.net
なんだなんだ
「強欲」って用語が指していることを理解してなくて会話がかみ合わなかった週末の人、
数日経ってもまだ「ぼくちゃんまちがってないもんえいごだとこうなんだもん」って駄々こねて80レス位進んでるのか・・・・・

ちょっとした勘違いとかちゃんとした日本語のドキュメントに目を通してなかったとか誰にでもあることなんだから
それこそ貧欲って書いてた人みたいに一言間違ってたわwって言うくらいで収まることだと思うんだけどなあ
悪いけどやってること恥の上塗りだよ?

455:デフォルトの名無しさん
22/07/05 20:35:51.78 K5Eu4yGw.net
もう ひんよく と きょうよく でいいよ

456:デフォルトの名無しさん
22/07/05 22:07:33.30 mmXAp8Yt.net
同一人物のくせに他人のフリとかどんだけ面の皮厚いんだよ・・・とか一瞬思ったけど
ID:K5Eu4yGw と ID:nkFK6+7O ID:4sOf+wSV は別人だったのか
見分けついてなくて同一レベルのゴミかと思ってたわごめん

457:デフォルトの名無しさん
22/07/05 22:30:45.62 JtY8aViY.net
口語だと基本的に最短一致、最長一致、バックトラックしない最長一致って言ってる
欲張りとか強欲とか実際に口に出して言ってる人には出会ったことないわ

458:デフォルトの名無しさん
22/07/05 22:50:11.96 MNnvUB1p.net
(非探索)最長一致
(最)多一致
(最)少一致
どちらも「最長」だと紛らわしさがあるので
でも「強欲」で定着しているものをわざわざ言い換える程の事でも無いと思う

459:426
22/07/06 00:22:09.50 ToTyGXGb.net
>>428
\x0085を\x{0085}に変えて
[\s&&[^\r\n\x{0085}\x{2028}\x{2029}]]でOKでした
積演算&&の有効な使い方を初めて知りました
どうもありがとうございました

460:デフォルトの名無しさん
22/07/06 02:03:37 7JN09BFV.net
\R*+\K\s

461:デフォルトの名無しさん
22/07/06 05:39:49.51 FCzm9xaa.net
口頭ってことは対面レビューとか他の人と共有するソースコードでの正規表現だよね?
そうなると、相手のスキルレベルにもよるけど
「強欲」って単語だけで


462:なく強欲な正規表現自体も避けておくかなあ このスレのうんざりする流れを見てもわかるとおり「強欲」が相手に通じるとは限らないし (強欲な正規表現なんて使ったことがない人のほうが多数派だろうし) 最長一致で事足りるなら多少のパフォーマンス悪化には目をつぶる チャットとかなら「++」みたいな具体例を明示して「強欲」って単語を使うかな ここみたいな正規表現スレならなにも前提を置かなくとも普通に「強欲」で通じるものとして会話するけど・・・ 会話が成り立たなかったうえに間違いを指摘されても「英語だと」「口語だと」「xxxだと」とか延々ゴネる人とは会話したくないなあ いい加減NGしたいからコテつけてくれるとありがたい



463:デフォルトの名無しさん
22/07/06 06:39:20.23 5qGkM3IH.net
しかし回答者のレベル低下が酷いな
ドンキホーテの件にしてもページの置換結果がそのまま店一覧のCSV形式になるような置換をして欲しかったな
$1,$2の件や強欲のすれ違いについても積極的に事態の収集を図ろうとせず悪化させて悪乗りするとはね

464:デフォルトの名無しさん
22/07/06 06:47:28.85 TTp+bFLp.net
英語名を変えさせたら良い
gohyork
yorkvary
muyork
対応して日本語名もカタカナ表記で
ゴヨーク
ヨークバリー
ムヨーク
そういう『名前』としてしまえば解決
一意な名称を与えた方が誤解も少なくなるだろう
> 強欲な正規表現なんて使ったことがない人のほうが多数派だろうし
それはあまりにもレベルが低すぎじゃね?
知らない者が学ぶべきであって触りすらも学んだことの無い者へ合わせる必要なんて無い

465:298
22/07/06 06:53:49.49 ZAN9ui5m.net
>>361
> それ書いてる>>314には$1なんてどこにも書いて無いのにw
つまり、>>314の「,」があまりに小さくて見えなくて、
(?<=店)[^〒]*?〒\d{3}-\d{4}\s++
これしか書いてなくて、
2行目の$1,$2を省略したと思ったのですw

466:デフォルトの名無しさん
22/07/06 07:02:49.27 5qGkM3IH.net
ここの回答者はそう勘違いしてるのを知ってて何も助言しなかったんだぞ、馬鹿にして笑ってたんだよ
このスレは過疎たせいで悪質な初心者が上級者ヅラするようになってしまった

467:298
22/07/06 07:06:06.70 ZAN9ui5m.net
秋葉原店
専門店
住所
〒101-0021 東京都千代田区外神田4丁目3-3
TEL
0570-024-511


で、さらに教えて欲しいのですが、
前回と同じ質問ですが、
店名と住所を抽出したいです。
で、↓を使いたいのですが、
店を抽出キーワードにすると、専門店とか店舗詳細とかの「店」も拾ってしまうのです。
で、データをよくみると、「 秋葉原店」のように店名の前にスペースがあります。
で、
( )(?<=店)[^〒]*〒\d{3}-\d{4}\s++ と、やってみたのですがダメでした。 どうすればよいでしょうか?
(?<=店)[^〒]*〒\d{3}-\d{4}\s++  ←は>>314さんの教えてくれたヤツ。

468:デフォルトの名無しさん
22/07/06 07:09:45.51 SZC2q9b+.net
これ非包含演算子に粘着してるのと同じやつだろ
粘着気質と承認欲求丸出しのマウンティング気質が全く同じ

469:デフォルトの名無しさん
22/07/06 07:46:05.23 o/55z/m0.net
>>453
再質問来てるぞ
> ドンキホーテの件にしてもページの置換結果がそのまま店一覧のCSV形式になるような置換をして欲しかったな
おまえがお手本見せてやれや
回答者をバカにするくらいだから余裕だろ?
>>457
>>320
使い方分からないならJSスレか初心者スレ行って聞いたらいい

470:298
22/07/06 08:07:45.17 ZAN9ui5m.net
>>459
↓って英語だからどうやって使っていいのかわかりません。
URLリンク(pastebin.com)

471:デフォルトの名無しさん
22/07/06 11:44:54.56 MXaUuSJv.net
まず英語の勉強をするべき

472:デフォルトの名無しさん
22/07/06 12:10:15.16 c6fRPAAn.net
CSV の正規表現なんて、数千行ぐらい掛かるだろ。
HTTP の正規表現でも膨大だろ
行区切り文字の改行
列区切り文字のカンマ
クォート文字のダブルクォーテーション。
クォート文字が無くても、意味が変わらなければ省略できる
クォート文字内では、行区切り文字・列区切り文字の効果がなくなり、単なる文字となる。
クォート文字内で、連続した2つのクォート文字を使えば、
クォート文字の効果がなくなり、単なる1つのクォート文字となる
もし、クォート文字の対応関係が崩れたらエラー。
クォート文字の数は、必ず偶数個である
こんな膨大な条件判断を書けるわけない。
条件判断とか構造があるものは、正規表現では無理。
こういうものは、Ruby などのパーサーを使わないと無理
CSVをawk などで処理している香具師とか、CSVの構造を分かっていないから、
こういう特別な意味をもつ文字が混じると、バグル

473:デフォルトの名無しさん
22/07/06 13:40:21.16 gR1YTmZs.net
>>462
なんでCSVのパースする前提になってるんだ?
webの店舗情報のテキストをCSVにするのになんでクォート内の対応を気にする必要がある?

474:デフォルトの名無しさん
22/07/06 15:43:31.34 MXaUuSJv.net
KEИTAはでたらめ

475:462
22/07/06 17:15:52.66 c6fRPAAn.net
行区切り文字の改行、列区切り文字のカンマ、
クォート文字のダブルクォーテーション
CSV データ内に、こういう特別な意味をもつ文字が混じると、バグル
これらの文字が無ければ、Ruby などのCSVパーサーを使わずに、
awk などで処理しても、バグらない

476:デフォルトの名無しさん
22/07/06 17:19:01.24 QeuQIz9d.net
なんか話脱線マウントしまくって会議やコードレビュー下手くそで顰蹙を買いまくってそうな人来てるやん

477:デフォルトの名無しさん
22/07/06 17:55:19.63 gR1YTmZs.net
>>465
混ぜなきゃいいのでは

478:デフォルトの名無しさん
22/07/06 19:01:53.46 kQhbtDqq.net
いつも文体一緒だからバレる

479:デフォルトの名無しさん
22/07/06 19:30:39.95 5qGkM3IH.net
>> 298
「店」が無い店もあったからHTMLソースから取り出すようにしたよ
ブラウザでHTMLソースを表示させてnotepad++にソースをコピペしてから置換して
1回目の検索欄
^[^\r\n]*<h4\s+[^>]*class=["']?shopList[_\-\s]*storeName["']?[^>]*>\s*<span[^>]*>\s*</span\s*>\s*([^\s<>\r\n]+(?:\s+[^\s<>\r\n]+)*)\s*
</h4\s*>(?:(?!<dd[^>]*>\s*〒|<h4)(?:[\r\n]|.))*<dd[^>]*>\s*〒\s*[\d\-]+\s+([^\s<>\r\n]+(?:\s+[^\s<>\r\n]+)*)\s*</dd\s*>[^\r\n]*$
1回目の置換欄
うんこ$1,$2
2回目の検索欄
^(?!うんこ)[^\r\n]*$[\r\n]+
1回目の置換欄
( 空欄にして )

2回の置換が終われば店舗一覧が完成しているはず

1回目の検索欄は長すぎるから2行に分割したよ、1行に繋げてから使って
検索欄や置換欄に記入するときは前後に余計なスペースやタブ文字が紛れ込まないように
HTMLの細かい変化にはなるべく対応出来るようにしたけど店舗一覧のページがリニューアルしたら使えなくなるよ

480:デフォルトの名無しさん
22/07/06 19:34:28 5qGkM3IH.net
ミスった

1回目の置換欄
( 空欄にして )

これは2回目だね

481:デフォルトの名無しさん
22/07/06 19:39:45 5qGkM3IH.net
全国の店舗一覧を取得したいならwgetなどで各店舗一覧ページをローカルに保存してからnotepad++のファイル一括置換でまとめて置換したほうが楽
「wgetの使い方が分かりません」はスレ違いなのでよそで聞いて

482:デフォルトの名無しさん
22/07/06 23:10:34.54 gFUK7vgi.net
ホンの少し複雑化しただけで頭の悪さや性格って浮かび上がるよねw

483:デフォルトの名無しさん
2022/07/07


484:(木) 16:29:53.46 ID:ls1FMHZL.net



485:デフォルトの名無しさん
22/07/07 16:37:27.46 3hUwVJb0.net
掃除して整形してからやるのがコスパ良いに決まってる
力業いくない

486:デフォルトの名無しさん
22/07/07 17:27:59.03 EezL89dt.net
ケースバイケースやろ

487:デフォルトの名無しさん
22/07/07 17:45:22.88 QZNfJ5wA.net
答え合わせ出来るとか、間違いに気付き易いor間違い難いケースは1発
合ってるか分かり難い場合は間違い難い正規化式で段階踏む

488:デフォルトの名無しさん
22/07/08 12:52:02 /znuHP85.net
パイプ・フィルターみたいに、どんどん変換していく方が分かりやすい。
処理A | 処理B | 処理C

Ruby の正規表現では、3種類の改行を、\R と書ける

/\r\n|\r|\n/

/\R/

489:デフォルトの名無しさん
22/07/10 17:44:55.47 0O2dRiW8.net
>possesive
ポジティブ

490:デフォルトの名無しさん
22/07/16 01:09:47.27 gUwlqT3Y.net
そして誰もいなくなった

491:デフォルトの名無しさん
22/07/16 09:09:55.88 L4T2PUf2.net
民度の低い異常者が常駐してたらそりゃ関わりたくないもん

492:デフォルトの名無しさん
22/07/16 11:12:47.12 WasoqaBj.net
自己紹介乙

493:デフォルトの名無しさん
22/07/20 06:49:04.62 v4tHM0fs.net
●Regular Expressionの使用環境
秀丸
●検索か置換か?
置換
●説明
同じ文字+間に要らない文字列+同じ文字

同じ文字 一つにしたいです
●対象データ
[ぬるぽ & ぬるぽ]
[ガッ-ガッ]
[hoge & hoge]
●希望する結果
ぬるぽ
ガッ
hoge
よろしくお願いいたします。

494:デフォルトの名無しさん
22/07/20 07:23:49 iuCM0uSo.net
説明にない[は何?

495:デフォルトの名無しさん
22/07/20 08:35:20.99 jm1i1IHH.net
>>483
すみません希望する結果はこちらでおねがいします
[ぬるぽ]
[ガッ]
[hoge]

496:デフォルトの名無しさん
22/07/20 09:04:35.27 Fdf9zFh2.net
テスト
\[(.+?)(.*?\1)\](?\2)

497:デフォルトの名無しさん
22/07/20 16:27:05.86 f63hBcuy.net
(.+).+?\1
$1

498:デフォルトの名無しさん
22/07/20 16:30:30.08 OlkAUELc.net
[ wow & wow]

499:482
22/07/20 17:48:38.07 VWdn2Di+.net
>>486さんの正規表現で上手くいきました
ありがとうございました

500:デフォルトの名無しさん
22/08/28 01:14:30.52 y+9tLdhC.net
正規表現の先読み・後読み URLリンク(zenn.dev)

501:デフォルトの名無しさん
22/08/28 07:40:58.02 MbqzPdhg.net
perlでは/.*hoge/より/.*?piyo/の方が圧倒的に速いのか
ステップ数は大して変わらなそうなのに

502:デフォルトの名無しさん
22/08/28 08:17:37.04 e6Sjxbuq.net
>>490
perlに限らずそりゃそうだろ
"hoge...めっちゃ長い文字列..."
ってあったら /.*?hoge/ なら最初の hoge でマッチしたと判断できるけど /.*hoge/ だと最後まで見ないと判断できない
最後に hoge ってある可能性があるから

503:デフォルトの名無しさん
22/08/28 08:52:32.95 7Mb5USF7.net
>>491
hogeじゃなくてpiyo
"hoge...めっちゃ長い文字列...piyo"
ってあったら /.*?piyo/ と /.*hoge/ は同じくらいだと期待するでしょ
489のコメントの比較テストを見てなんでそうなるのかなと

504:デフォルトの名無しさん
22/08/28 09:11:11.32 dcB5AKwO.net
>>492
そりゃそういうケースもあるけどそうでないケースの方が多いだろ

505:デフォルトの名無しさん
22/08/28 10:55:00.88 V92k17Tf.net
489の記事・コメントを見たけど
「.*hoge.*」

「.*?hoge」
の比較をして後者のほうが圧倒的に早いって記述はあったが
490の言ってる比較はどこにも見当たらないようだけど・・・?
492の
>hogeじゃなくてpiyo
はもっと意味不明だな
「/.*hoge/」
「/.*?piyo/」
の違いで、491は「.*」「.*?」の違いで速さが変わるのが当たり前って話をしてるのに
"hoge...めっちゃ長い文字列...piyo"みたいな極端な例を突然出してこられても

506:デフォルトの名無しさん
22/08/28 12:06:13.62 3aiLuiYL.net
マッチする場合はそれほどステップ数は変わらないけど
マッチしない場合のステップ数の差は大きいね

507:デフォルトの名無しさん
22/08/28 12:10:20.88 iCw3MfJc.net
(?s:^(?=.*(?:トビラ|280|280|[内外]製|純正|公式))(?=.*(?:ガイジ|発狂|長文|必死|キチガイ|キチキチ)))
これって何か間違ってますか?280が消えない時があります

508:デフォルトの名無しさん
22/08/28 12:33:21.57 4oWDpmI8.net
[22][88][00]
こういうこと?その消えない時のレス見ないと正確なことは分からんよ
後ろが一致してないのかもだし数値参照かもしれんし

509:デフォルトの名無しさん
22/08/28 14:30:01.62 HKThARKH.net
なぜ組み合わせたいのかがよくわからんな
後半のパターン部分を素で書けば良いと思うんだけど、あえて暴言を目視したいスレでもあるんだろうか?

510:デフォルトの名無しさん
22/08/28 14:36:53.39 q8tm2XHG.net
単発のNGの他に連鎖NGとかIDごとNGとかあるだろ
わからないなら黙ってろよ

511:デフォルトの名無しさん
22/08/28 16:16:08.48 XxcpkpFs.net
ごめん

512:デフォルトの名無しさん
22/09/04 01:47:12.24 0/i0sC9q.net
GNU grep 3.8 (2022-09-02)から-Pオプションのリンク先がPCRE2になったらしい
それ以前は古いPCREだった
-Pオプションが機能しないWindows版grepバイナリには関係のない話だけど

513:デフォルトの名無しさん
22/09/04 07:42:45.45 pCQ9P7Vy.net
1
2

10
77
100
150
1000
3桁までの数字のみをする場合
[0-9]{,3}だとダメでした
正規表現チェッカーでいろいろ試しているですが分かりません
200までの数字だとどうしたらいいですか?

514:デフォルトの名無しさん
22/09/04 08:41:45.13 x2tuNrOY.net
URLリンク(www.simple-edition.com)
[1-9]|[1-9][0-9]|1[0-9]{2}|200
で範囲を作ったものを
URLリンク(weblabo.oscasierra.net)
ここに代入しても使えませんでした
「正規表現」の意味合いが違うんでしょうか?

515:デフォルトの名無しさん
22/09/04 09:08:03.10 MIQciAoV.net
>>503
それだと92000の200にもマッチしてしまうよ
インド数字等を気にしないなら[0-9]は[\d]でもOK
(?<![0-9])(?:200|[1][0-9]{2}|[1-9][0-9]|[0-9])(?![0-9])

516:デフォルトの名無しさん
22/09/04 09:46:10.78 ZQZ632xa.net
>>503
[0-9]{1,3}
これだと結果でるようだけどそのサイトm値省略不可なのでは
他に | のorも説明ないようなのでダメとか
正規表現文法どこまで対応してるかは動かす環境次第なので質問テンプレートにも入力項目になってんだけど
>>1

517:デフォルトの名無しさん
22/09/04 10:07:01.01 qlj2b1lm.net
すまない
●Regular Expressionの使用環境
iPhone,a-shellというアプリ
●検索か置換か?
検索
●説明
フォルダ内にある写真を圧縮するため
●対象データ
1から200などのjpegとかの画像
●希望する結果
検索してそれをまとめて圧縮

518:デフォルトの名無しさん
22/09/04 10:19:49.12 NNtN3+VI.net
まあ案件次第だけど
> 200までの数字だとどうしたらいいですか?
とかなら\d+で取得してアプリケーション側で弾くのが後の保


519:守を含めて簡単かと思う



520:デフォルトの名無しさん
22/09/13 19:48:53.80 aae9uQ50.net
スルーされにくい質問のテンプレと例
●Regular Expressionの使用環境
PowerShell7.2
●検索か置換か?
置換
●説明
文中(先頭及び文末以外)の0が連続して3つ以上並ぶ部分をハイフン(-)に置換したい
●対象データ
123000444
000123000
1230000000444
●希望する結果
123-444
000123000
123-444
よろしくお願いいたします。

521:デフォルトの名無しさん
22/09/13 20:02:34.86 BFM47HY2.net
(?<!^)000+(?!$)
-

522:デフォルトの名無しさん
22/09/13 20:23:28.22 el3nukes.net
00000 → 0-0 ?

523:デフォルトの名無しさん
22/09/13 20:37:38.14 G28B9gdh.net
ああ、
00001200030000

0-12-3-0
とするのか (>>509のやつ)
先頭末尾に繋がっている0は無視したい
000012-30000
のか例からだと不明だね

524:デフォルトの名無しさん
22/09/13 21:45:26.67 aae9uQ50.net
508です。
早くもいろいろご回答いただきありがとうございます。
そしてすみません、みなさまのリプを見て自分の考えが足りなかったことに気付きました…
変換は一度だけ、先頭から数えてもっとも近いもののみです。
正しく書き直します、すみません。
スルーされにくい質問のテンプレと例
●Regular Expressionの使用環境
PowerShell7.2
●検索か置換か?
置換
●説明
文中(先頭及び文末以外)の0が連続して3つ以上並ぶ部分をハイフン(-)に置換したい
(先頭から数えて最初の一致のみ)
●対象データ
123000444
000123000
1230000000444
12000045600006
●希望する結果
123-444
000123000
123-444
12-45600006
よろしくお願いいたします。

525:デフォルトの名無しさん
22/09/13 22:09:54.11 jeF3JQfM.net
>>511
> 先頭末尾に繋がっている0は無視したい
こんな条件どこから出てきたんだ?

526:デフォルトの名無しさん
22/09/13 22:20:12.97 GLLSFlxd.net
「文中(先頭及び文末以外)の0」が連続して3つ以上並ぶ部分
文中(先頭及び文末以外)の「0が連続して3つ以上並ぶ部分」

527:デフォルトの名無しさん
22/09/13 22:24:49.17 clq+OpKM.net
^([1-9]+)0+(\d+)$ --> $1-$2
でいかがでしょう

528:デフォルトの名無しさん
22/09/13 22:33:07.80 clq+OpKM.net
あ、「ゼロ3つ以上」を満たしてなかった
また考えますー

529:デフォルトの名無しさん
22/09/13 22:35:39.26 clq+OpKM.net
^([1-9]+)0{3,}(\d+)$ --> $1-$2
でしょーか

530:デフォルトの名無しさん
22/09/13 22:46:39.11 7uE/UK4/.net
010001

531:デフォルトの名無しさん
22/09/13 23:08:19.66 G28B9gdh.net
>>513
> 文中(先頭及び文末以外)の0が
の説明と例からだと
「先頭以外」が先頭の0、1文字を指すのか
先頭から続く0の塊を指すのか不明でしょ
> 3つ以上並ぶ部分
が強欲なのか?欲張りでいいのか?が不明 >>511 さんの質問だね

532:デフォルトの名無しさん
22/09/13 23:09:06.59 G28B9gdh.net
>>519
訂正、>>510さんの質問

533:デフォルトの名無しさん
22/09/13 23:10:13.89 aae9uQ50.net
みなさんありがとうございます!
できそうな正規表現がありうれしいです。
すみませんが今手元に環境がないため明日動作させて確認します。

534:デフォルトの名無しさん
22/09/13 23:20:09.73 aae9uQ50.net
そして自分でも要件を言葉にできておらず申し訳ありません
みなさんに質問いただいて初めて気付きましたが、
先頭及び末尾が0であった場合、そこから連続する0は除外する ができると一番望ましいです。
00001200034000

000012-34000
となります。
返信遅くなりすみません。

535:デフォルトの名無しさん
22/09/13 23:44:59.39 G28B9gdh.net
(?<!^)(?>0{3,})(?!$)
未test
最初のマッチだけ置換は以下
URLリンク(social.technet.microsoft.com)

536:デフォルトの名無しさん
22/09/14 00:51:16.34 4SNfctPQ.net
>>518
あかんすね…
^(0*)((0{0,2}[1-9])+)0{3,}([1-9]\d*)$ --> $1$2-$4
これはどーでしょう?

537:デフォルトの名無しさん
22/09/14 05:23:58.73 E5sTi1VY.net
([1-9])0000*([1-9][0-9]*)
$1-$2

538:デフォルトの名無しさん
22/09/14 09:12:22.80 Kn3Wl+2J.net
(?<=[1-9])(?>000+)(?!$)(.+)$
-$1

539:デフォルトの名無しさん
22/09/14 09:38:59.41 s0UMl1ds.net
(^[^0].*?)0{3,}([^0].*?$)
$1-$2

540:デフォルトの名無しさん
22/09/14 10:42:18.62 6Qq1IObP.net
>>524,525,526
>>523,527

541:デフォルトの名無しさん
22/09/14 19:22:12.74 +0SwTq6N.net
508です。
沢山の案ありがとうございました、本当に助かりました。
一通り試して正しく動くものは沢山あったのですが、
以下の方式で解決させていただきました。
$reg=[regex]'([1-9])0000*([1-9][0-9]*)'
$reg.Replace($str,'$1-$2',1)
また、上記の案以外もこんな解決方法があるのかととても勉強になりました。
そして自分が要件をまとめられてなかったことにも反省いたしました。
今後はこちらで回答する側になれるよう、再度勉強いたします。
重ね重ね本当にありがとうございました。

542:デフォルトの名無しさん
22/09/14 19:57:00.91 b2aEm1i9.net
回答にある正規表現は置換回数を指定できない置換方法でも大丈夫
置換回数に1を指定する方法でやるなら単に ([1-9])0000*([1-9]) でもいい

543:デフォルトの名無しさん
22/09/14 22:22:31.78 +0SwTq6N.net
>530
確かに、教えていただいたこともりもりにしてしまいましたが
わざわざ[1-9]のあとに[0-9]を入れている意味がないですね…。
ご指摘ありがとうございます。

544:デフォルトの名無しさん
22/09/18 12:56:41.18 QaJ1iFM2.net
githubで結構探したんですがそれっぽいのが見つからず、お力お貸しください。
●Regular Expressionの使用環境
AutoHotKey1.1系
●検索か置換か?
置換
●説明
2つのクォーテーションマークに囲まれたパスのうち、1つ目(app.exe)を削除したい。
囲まれたパス同士は半角スペースで接続される。
●対象データ
"D:\Dir_Path\_app.exe" "D:\Dir_Path\_script.ahk"
^^^^^^^^^^^^^^^^^^^^^^^
●希望する結果
"D:\Dir_Path\_script.ahk"

545:デフォルトの名無しさん
22/09/18 16:16:05.56 wjpqonb4.net
>>532
URLリンク(regex101.com)

546:デフォルトの名無しさん
22/09/18 19:20:15.15 /uA/jgNo.net
>>533
ありがとうございますめちゃくちゃシンプルでした!あとこのregexサービスいいですね
".*"\s だと構文エラー吐きました
置換関数内(””の中)で”がうまく扱えないので頑張ってみます。

547:デフォルトの名無しさん
22/09/18 21:26:30.42 CbZe8FP4.net
"を
\"

\x22
に置き換えて試してみてわ

548:デフォルトの名無しさん
22/09/19 16:41:30.36 4iw9Mtek.net
>>535
ありがとうございます、いけました
(ついでに””も削除)
\x22.*\x22\s|\x22

549:デフォルトの名無しさん
22/09/20 02:58:09.09 94I1wBUa.net
二重引用符のエスケープは重ねて""だな
"".*""\s

550:デフォルトの名無しさん
22/10/29 13:09:46.30 ec13kmtS.net
●Regular Expressionの使用環境
PCRE2
●検索か置換か?
検索
●説明
(..[\0@-g]\0){147}などを高速に検索したい
●対象データ
メガ単位のバイナリファイル(リトルエンディアン)
●希望する結果
説明は一例なので前中後にリテラルパターンが入る事もありますが(16KiBを越える事も)、固定長で
一定範囲だが不明な32bit値(0または0x00400000~0x00670000付近)を含むブロック位置を列挙したいです
現状PCRE2で検索は出来ていますが、Intel Hyperscanだと
util/determinise.h:determinise:162:succ_id 16383 >


551:= state_limit 16383 ng_mcclellan.cpp:buildMcClellan:590:state limit exceeded rose_build_add.cpp:addOutfix:1779:could not build as either an NFA or a DFA ng.cpp:addGraph:507:could not compile component 0 with 592 vertices と言われて説明の例に限っては正規表現のコンパイルすら不可能です 32bit値は4バイト境界に限りませんが、ブロック先頭は4バイト境界なのでそこから高速化したいのですが 「(?>....)*?\K」を接頭しようとするとPCRE2_ANCHOREDはJITで使えませんし、そもそも遅くなるようです 今のところプログラム側でオフセットが4バイト境界のみを拾い、次の検索開始もアライメントしています コールアウトもお察し…こういったパターンに適した書き方、又はCライブラリが有れば教えて欲しいです



552:デフォルトの名無しさん
22/10/29 19:31:13.26 9Ey1MUJ8.net
>>538
\0@って何?
\c@でNULL文字検索の意味ではないの?

553:デフォルトの名無しさん
22/10/29 19:42:35.80 ec13kmtS.net
>>539
文字クラス[\0@-g]なので表記を統一するなら[\x00\x40-\x67]になります

554:デフォルトの名無しさん
22/10/30 10:24:48.15 dZd+t5oq.net
スプレッドシートで20221030と入力されている数字を日付の表記?2022/10/30なのか10/30/2022なのかわからないけどDATEDIF関数に使える形に置換する正規表現ってどう書きますでしょうか

555:デフォルトの名無しさん
22/10/30 11:55:42.97 oF72FRjI.net
>>541
正規表現では無理。スレチ
DATE関数で日付にかDATEVALUE関数でシリアル値に変換
セルA1の値:20221030
=DATE(LEFT(A1,4),MID(A1,5,2),RIGHT(A1,2))
=DATEDIF(DATE(LEFT(A1,4),MID(A1,5,2),RIGHT(A1,2)),"2022/11/01","D")

556:デフォルトの名無しさん
22/10/30 12:28:15.07 S1PTRz+V.net
>>541
=DATEVALUE(REGEXREPLACE(A1, "^(....)(..)(..)$", "$1/$2/$3"))
>>542
スレチ

557:デフォルトの名無しさん
22/11/02 14:16:53.69 gx4Z74sz.net
すいません。
0と正の整数のみにマッチする正規表現はどう書きますか
----
OK
0
1
22
303
999999
----
NG
-3
z55
0.33

558:デフォルトの名無しさん
22/11/02 14:20:50.51 4jxQNd6r.net
^\d+$

559:デフォルトの名無しさん
22/11/02 14:26:53.26 gx4Z74sz.net
ありがとうございました!

560:デフォルトの名無しさん
22/11/02 14:39:57.52 Hz9+pCnD.net
00
00000000
012
003102
とかはええんかC言語だと8進数なんだけど

561:デフォルトの名無しさん
22/11/02 14:57:45.88 mLb2a5cx.net
最近は8進数を0oと書くのが主流じゃね?

562:デフォルトの名無しさん
22/11/02 15:14:09.32 gx4Z74sz.net
いやよくないのですが。。

563:デフォルトの名無しさん
22/11/02 22:52:34.87 WMtJS4K4.net
>>547
なぜC言語?

564:デフォルトの名無しさん
22/11/03 13:08:35.66 yr3S2O5F.net
^(?:0|[1-9]\d*+)$

565:デフォルトの名無しさん
22/11/03 23:35:12.45 gGr9RQjz.net
A(B(1), C(2)), B(3), C(4), A(D(5))の
A(B(1), C(2))とA(D(5))の両方にマッチする表現できますでしょうか?

566:デフォルトの名無しさん
22/11/04 00:21:55.02 Rv2RlvZT.net
A\([BD]\([15]\)(, C\(2\))?\)

567:デフォルトの名無しさん
22/11/04 00:32:30.76 u3TD418O.net
>>552
関数名は英数字1文字、ネストされた関数の引数は数字1文字にしてるけどこんな感じでいけるかと
\w\(\w\(\d\)(?:,\s*\w\(\d\))*\)
URLリンク(i.imgur.com)

568:デフォルトの名無しさん
22/11/04 19:23:25.88 aOu/uEdM.net
>>553-554
参考になりました
ありがとうございます

569:デフォルトの名無しさん
22/11/05 19:55:25.05 xnenmrxP.net
下のようなテキストがあった時、
フシギダネ、たねポケモン。生まれてから、しばらくの間は背中のタネから栄養をもらって大きく育つ。
フシギソウ、たねポケモン。背中のつぼみがふくらみだすと、あまい匂いが漂い始める。
フシギバナ、たねポケモン。雨の降った翌日は、背中の花の香りが強まる。
その行で最初に出てきた「、」だけをTabで置換したいのですが、
正規表現でなんとかできますかね?(´・ω・`)

570:デフォルトの名無しさん
22/11/05 19:57:13.42 Gow5Zgrm.net
顔文字が気持ち悪い

571:デフォルトの名無しさん
22/11/05 19:57:30.67 KyEMh/LJ.net
マルチラインモードのg無し置換でええのでは?

572:デフォルトの名無しさん
22/11/05 20:01:38.81 xnenmrxP.net
すみません。7分で自己解決しました。(´・ω・`)

573:デフォルトの名無しさん
22/11/06 18:52:14.69 Ju9kLy6l.net
>>559.replace('(´・ω・`)', '');

574:デフォルトの名無しさん
22/11/06 18:56:40.82 gpiofWbc.net
>>560
エスケープしろ

575:デフォルトの名無しさん
22/12/01 00:48:55.16 7b6m1q/M.net
師走だ

576:デフォルトの名無しさん
22/12/01 20:43:42.13 MJwbaGOX.net
>>556
^(.*?)、(.*)$ → $1¥t$2

577:デフォルトの名無しさん
22/12/07 17:35:07.95 hI2dpmO3.net
正規表現はコードを分かりにくくする非常に悪い技術だと思います。
早く廃止され、代替方法が見つかってほしいです。

578:デフォルトの名無しさん
22/12/07 18:06:34.78 Zr5hf/of.net
それは思うけどqwertyキーボードですらこの半世紀何も変わってないし、Legacy引き摺る類のUIは余程の転換期でも起こらない限り無理なんじゃないかな

579:デフォルトの名無しさん
22/12/07 18:23:42.79 IT7suRvF.net
>>564
わかりやすくて使い物にならないものができあがる予感

580:デフォルトの名無しさん
22/12/07 18:33:23.28 8ZB5Tvh5.net
物事の「本質的な複雑さ」を解決しようとしても「その場でぐるぐる回り続ける」ハメになるだけ(どこにもたどり着くことはない)

581:デフォルトの名無しさん
22/12/07 21:37:36.61 lzjCqHmQ.net
正規表現を分かりやすい自然言語や仕様記述に変換するサービス作れば解決
正規表現を生成する機能も用意して最適化オプションもつければ有償で十分やっていける

582:デフォルトの名無しさん
22/12/07 22:46:38.37 0xPH+d9p.net
>>568
とりあえずそう言うアプリにお前ならいくら払うんだ?

583:デフォルトの名無しさん
22/12/08 10:58:46.31 c3lwHRlZ.net
>>564
それはそうなんだけど
徹夜で必死に考えいいアイデアを提供して下さい

584:デフォルトの名無しさん
22/12/11 15:34:21.97 xFkTi0uS.net
abc-ABC
abcd-ABC-def
abcde-defghi-ABC
ab-def-ghi-ABC
-ABCより前にハイフンのない-ABCを選択するのに3,4行目を除外する事で出来たのですが直接-ABCを選択するような事って出来ますか? 使うのはpythonです。よろしくお願いします

585:デフォルトの名無しさん
22/12/11 15:49:22.27 xFkTi0uS.net
あ、行頭を指定すれば簡単に出来ましたスレ汚しすみませんでした

586:デフォルトの名無しさん
22/12/26 08:14:24.98 G31tf+Le.net
質問です
私に全然知識がないのですごい初歩的な質問になるのですが
例えば“テキ”を検索するとして
“仮テキスト”となっているのは除く、
ホワイトリストを付随するような検索をするにはどうすればいいでしょうか?
私が試したもの、
(?<!仮)テキ(?!スト)
↑例えばこれだと“仮テキ”や“テキスト”まで除かれてしまいます
(おそらく「そりゃ当たり前だろ」と思われる事を言ってると思うのですがなにぶん知識がないためご容赦ください)
正規表現を使う場所としてはchmateやFirefoxアドオンなどで使っています
浅学バリバリな質問なのですがどうかご回答よろしくお願いします

587:デフォルトの名無しさん
22/12/26 08:18:23.33 LqfRRdYe.net
>>573
知識以前にお前馬鹿そうだから、>>2のテンプレ使って書き直して

588:デフォルトの名無しさん
22/12/26 10:07:19.58 5uJMWDBy.net
(?<!仮)テキ|テキ(?!スト)

589:デフォルトの名無しさん
22/12/27 04:47:48.03 xSShEST7.net
>>574
すいません、確かにテンプレ使った方が良かったですね…
>>575
ありがとうございます
単純な話だったんですね…
教えて貰って図々しいのですが
長くなってもいいので“仮テキスト”という続いた文字列を含めて
同じ動作をする正規表現はあるのでしょうか?
あった場合教えていただきたいです…

590:デフォルトの名無しさん
22/12/27 17:03:22.33 G2ophMPv.net
テキ(?!..(?<=仮テキスト))

591:デフォルトの名無しさん
22/12/28 01:36:28.87 Ztu+b3Ae.net
>>577
ありがとうございます
仕組みも分かったため複数指定もでき望んでいた事がやれました
初歩的な事にわざわざお付き合いいただきありがとうございました

592:デフォルトの名無しさん
22/12/29 18:17:40.05 HWC94+Gl.net
正規表現は半年後の自分がメンテできないから嫌なんだわ
特にその時適当に書いて辛うじて動いてるやつなのか会心の出来だったやつなのか一見判らなくて困るんだわ
正規表現に10段階ぐらい完成度のタグを付けたいのだよハイパーテキスト的にな
そういう気の利いて手軽な方法はないのかのう

593:デフォルトの名無しさん
22/12/29 19:06:41.81 W/by+W2J.net
人から貰った正規表現を理解もせずに自分の物にしていないからそんな事が起こる
自分で書いた正規表現なら何年経ってもパッと見りゃ内容解る
と言うか年々理解度が向上するから、見てがっかりして書き直すまである

594:デフォルトの名無しさん
22/12/29 19:37:11.07 HWC94+Gl.net
>と言うか年々理解度が向上するから
若いってええなあ
あと10年もすれば昔の自分の方が頭いいじゃねえか状態になるから今ががんばり時だよ

595:デフォルトの名無しさん
22/12/29 19:46:27.85 JPv7+i4s.net
>>579
コメント付けられる方言もあるがな

596:デフォルトの名無しさん
22/12/29 20:16:21.35 Y6+rT86n.net
>>581
すまんもう60越えとる

597:デフォルトの名無しさん
22/12/29 21:08:41.79 5pKgQfqK.net
テスト書かないんだろ

598:デフォルトの名無しさん
22/12/29 23:00:20.15 zukJLKA9.net
そのうち、こうこうしたいと書くとそれに合った正規表現を出力するAIが出て来る
たぶん

599:デフォルトの名無しさん
22/12/29 23:37:13.29 VQTP+Rjm.net
>>585
今でもchatGPTで出来る

600:デフォルトの名無しさん
22/12/30 00:14:09.14 QnG1dvSt.net
今では正規表現中にコメントが書ける(拡張形式ignore whitespace)ものも多いのでは

601:デフォルトの名無しさん
22/12/30 01:37:49.63 1dcL6xM/.net
>>586
あれサラッとでまかせ混ぜてくるから油断ならん
まさに詐欺師の所業よ

602:デフォルトの名無しさん
22/12/30 05:43:41.86 gQwuuolL.net
正規表現の高齢化問題
今の子って正規表現に触れる機会あんのかなあ
糞みたいなエスケープシーケンスの概念込みで教えなきゃならんし
授業ではすきっぷやな

603:デフォルトの名無しさん
22/12/31 09:31:33.47 3UMVip3o.net
>>585
ここが…

604:デフォルトの名無しさん
22/12/31 19:47:02.85 yp0KXAnH.net
字幕ファイルの修正で秀丸を使って
文字列の置き換えしたいと考えています
置換前
00:00:06:09 - 00:00:10:47
おはよう
00:00:11:18 - 00:00:16:02
こんにちは
置換後
00:00:06.090,00:00:10.470
おはよう
00:00:11.180,00:00:16.020
こんにちは
----
対象データ
”xx:xx:xx:xx - xx:xx:xx:xx”
":xx - "を".xx0,"に置き換え
最後の"xx"を"xx0"に置き換え
希望結果
”xx:xx:xx.xx0,xx:xx:xx.xx0”
お願い致します

605:デフォルトの名無しさん
22/12/31 21:20:45.11 gFIlpiwK.net
せっかく秀丸スレあるんだからそっちで聞けばいいのに
HmJre.dll V.510
^([0-9:]+):([0-9]{2}) - ([0-9:]+):([0-9]{2})$
\1.\20,\3.\40

606:591
22/12/31 22:37:29.30 yp0KXAnH.net
大晦日のツンデレさんに圧倒的感謝!!
ありがとうございます

607:デフォルトの名無しさん
23/01/04 10:29:42.45 vMZ55Vj6.net
教えてくださいm(__)m
[あああ(いいい)]
のような文字列を
[いいい](あああ)
と置き換える方法はあるでしょうか

608:デフォルトの名無しさん
23/01/04 12:23:22.97 gCqYqHxa.net
[あああ(いいい)]で検索して
[いいい](あああ)で置換する

609:デフォルトの名無しさん
23/01/04 12:35:30.42 Gtp9NVd3.net
テンプレ無視する馬鹿にはその答で十分だわな

610:デフォルトの名無しさん
23/01/04 12:40:09.77 k64eH4zi.net
まあ一例として
s/\[([^\[\]\(\)]+)\(([^\[\]\(\)]+)\)\]/[$2]($1)/

611:デフォルトの名無しさん
23/01/04 13:41:53.53 sAqw0ZzI.net
>>594
URLリンク(glot.io)
import pegs
echo "[あああ(いいい)]".replacef(peg" '[' {@} '(' {@} ')' ']' ","[$2]($1)")
でいける

612:デフォルトの名無しさん
23/01/04 18:30:34.43 REieKqQf.net
文頭や文中にあるauだけをNGするやつ教えて下さい

613:デフォルトの名無しさん
23/01/04 18:46:40.14 Edm8Og2O.net
docomoはいいのか

614:デフォルトの名無しさん
23/01/04 18:57:17.14 zEB0n1jD.net
唐突に「NGする」って一体何の話だ???

615:デフォルトの名無しさん
23/01/04 18:58:30.08 zEB0n1jD.net
何かを想定しているなら質問に際して最初にそれを伝えるのが常識だろう

616:デフォルトの名無しさん
23/01/06 10:01:53.18 +4FzrtmN.net
>>598
ありがとうございました。
助かりました

617:デフォルトの名無しさん
23/01/06 10:09:25.96 +4FzrtmN.net
>>597
感謝です!

618:デフォルトの名無しさん
23/01/07 13:40:18.10 0HEuBgBZ.net
JaneStyle等の5ちゃん専ブラのNG設定用に、以下の条件を全て満たす書き方を教えてください。
・1行(改行文字無し)
・半角全角で70文字以上100文字
・文中に「、」または「。」を1文字以上含む

619:デフォルトの名無しさん
23/01/07 14:35:34.78 bXxrhZUn.net
>>605
それはここじゃなくて JaneStyleのスレで聞いた方がよくね?

620:デフォルトの名無しさん
23/01/07 17:50:57.40 IdmDw0D4.net
>>602
うるせーな死ねよハゲ

621:デフォルトの名無しさん
23/01/07 19:04:16.19 B7GL4Qwr.net
JaneStyleでの改行は\s<br>\sか?
実際の対象を見ないと分からないけどたとえばアンカーなんかも無いと分かってるなら
^(?=.*[、。])\s[^<]{70,100}\s$
特定の荒らしか何かを想定しているのかな

622:デフォルトの名無しさん
23/01/07 19:42:28.54 Zoa7JGj4.net
アンカータグは当然あるよ
5chならね

623:デフォルトの名無しさん
23/01/13 18:40:39.04 ZqEJpVNq.net
そういうことじゃないんじゃないか

624:デフォルトの名無しさん
23/01/29 18:48:08.66 cz1zZ3tj.net
>>605
そのままchatgpt で聞いてみたよ

以下の正規表現を使用することで、1行 (改行文字無し)、半角全角で70文字以上100文字、文中に「、」または「。」を1文字以上含む条件を全て満たす文字列を抽出することができます。
ruby
Copy code
^(?=.{70,100}$)(?=.*[、。]).*$
この正規表現は、文字列が70文字以上100文字以下であり、文中に「、」または「。」を1文字以上含むことを保証します。
だってさ

625:デフォルトの名無しさん
23/01/29 21:21:58.64 O+Wk/2Eo.net
近頃はみんな

626:デフォルトの名無しさん
23/01/29 22:30:48.24 9ooogxSi.net
薄くなったね

627:デフォルトの名無しさん
23/01/30 01:55:35.57 GlHcGD1J.net
体裁を整える能力はピカイチだが、それが正しいという保証はないからなあ
ちゃんと使うにはまずその分野の知識が必要というジレンマ

628:デフォルトの名無しさん
23/01/30 17:50:26.15 gh9uKCuR.net
正規表現でガチャを回せる投稿サイトを作った話
URLリンク(zenn.dev)
URLリンク(www.regech.app)

629:デフォルトの名無しさん
23/01/30 21:13:06.03 TI/BqHZQ.net
(?!).+

630:デフォルトの名無しさん
23/02/02 00:14:23.96 fPL322j9.net
顔文字に見える正規表現を考えたい
(;*~_~*)

631:デフォルトの名無しさん
23/02/04 22:54:12.69 DlLJLfae.net
2023-02-04という書式の日付のデータがある時
その行で最初に出てきた-を年にしたい
正規表現でなんて書けばいいですか?

632:デフォルトの名無しさん
23/02/04 22:57:04.23 DlLJLfae.net
検索欄に(^.*?)(-)
置換欄に\1年

633:デフォルトの名無しさん
23/02/05 10:48:30.98 KWvYGjBb.net
-(.*) → 年$1

634:デフォルトの名無しさん
23/02/11 16:20:49.02 fAcJ3wf1.net
●Regular Expressionの使用環境
WindowsのJScript
●検索か置換か?
検索
●説明
下記のような文字列があった場合、
[なんとか]から次の[なんとか]が出てくるまでの複数行を取り出したいんだけど、どうする?
自分はコレしか思いつかなかったんだけ
str.match(/^\[.*\][^\[]*/mg);
もっといい方法ある?
●対象データ(これってAviUtlのexoファイルです。
[424.0]
_name=音声ファイル
再生位置=0.00
再生速度=100.0
ループ再生=0
動画ファイルと連携=1
file=D:\PlayMemories\2023-02-09\C0002.MP4
[424.1]
_name=音量フェード
イン=0.00
アウト=3.00
[424.2]
_name=標準再生
音量=50.0
左右=0.0

635:デフォルトの名無しさん
23/02/11 17:02:21.81 yc790R16.net
^\[[^[]*\n(?=\n)

636:デフォルトの名無しさん
23/02/11 17:47:19.77 4bXfwNL9.net
str.split('\n\n')

637:デフォルトの名無しさん
23/02/11 18:25:52.14 G+Atp5X9.net
空行区切りとは限らない場合、ファイル名に[があるかもしれない場合
str.match(/^\[.*(?:\n(?!\[).*)*\n*/gm)

638:デフォルトの名無しさん
23/02/12 00:39:26.16 mse6QHvr.net
>>622-624
できました。すごい。

639:デフォルトの名無しさん
23/02/12 12:08:20.65 2oU17ty6.net
[424.0] は、つまり、
行頭が[ で、行末が] の場合だけを、特別な命令と解釈するのだろ

640:デフォルトの名無しさん
23/02/12 12:34:59.28 PBDCQhni.net
こういうの非包含が使えたらすごい楽
^\[(?~^\[)

641:デフォルトの名無しさん
23/02/12 23:00:31.59 mse6QHvr.net
>>627
正規表現て複雑な入れ子とかの抜き出しもできることは知ってるけど、
その辺の解説書とかページてないのかね。

642:デフォルトの名無しさん
23/02/14 23:50:28.21 dTCCMwFb.net
JavaScriptの正規表現で質問です
ある正規表現に合致し、ある正規表現に合致しない、という正規表現は可能でしょうか?
具体的には
任意数は0も含むものとして
任意数の大文字アルファベットのあとに、任意数の小文字アルファベットが続き、その後任意数の数字が続く文字列のうち


643: 小文字のみ、数字のみの文字列を除外したいです(大文字のみのものは合致させたい) 合致例 ABab01 AAA0 aaa012 ABCDE 合致させたくない例 abcde 012345 000aaa



644:デフォルトの名無しさん
23/02/14 23:57:34.39 XRqDNj0i.net
宿題ですか?

645:デフォルトの名無しさん
23/02/15 00:01:55.99 GMMfGDKP.net
宿題かどうかで正規表現の書き方は変わりませんよね?

646:デフォルトの名無しさん
23/02/15 00:52:40.53 F/CuEgLN.net
できるけど全部正規表現でやらないほうがメンテしやすいぞ

647:デフォルトの名無しさん
23/02/15 00:54:24.40 GMMfGDKP.net
つまりif文で区切るほうが見やすいということですか?

648:デフォルトの名無しさん
23/02/15 08:47:44.60 p2xlcd9z.net
([A-Z]+)?[a-z]+[0-9]+|[A-Z]+([0-9]+)?

649:デフォルトの名無しさん
23/02/15 10:37:15.75 5uY2Ajym.net
>>634
ありがとうございます
素直に足し算の発想でやればよかったんですね

650:デフォルトの名無しさん
23/02/15 12:54:55.60 q8BaXLdM.net
ABab

651:デフォルトの名無しさん
23/02/15 14:01:59.87 N6Rs6EpM.net
([A-Z]+)?[a-z]+[0-9]+|[A-Z]+([a-z]+)?([0-9]+)?
ですかね

652:デフォルトの名無しさん
23/02/15 14:05:43.89 VU7epY9U.net
[A-Z]+[a-z]*[0-9]*|[a-z]+[0-9]+

653:デフォルトの名無しさん
23/02/15 14:13:41.85 6puQI1n1.net
NG例に000aaaがあるということは
000aaaAA
とかもあるわけだよね
そしてこれは順序が違うからマッチさせたダメってことか?

654:デフォルトの名無しさん
23/02/15 14:30:32.69 u5Kc1xOf.net
^(?!$|[a-z]+$|[0-9]+$)[A-Z]*[a-z]*[0-9]*$

655:デフォルトの名無しさん
23/02/16 22:56:05.33 Tpu7Mxzn.net
正規表現で*ではなく0文字以上n文字以下って指定の仕方どうやるんだっけ
*はセキュリティホールになるから使うなみたいなのをどこかで見たので

656:デフォルトの名無しさん
23/02/16 23:01:53.04 Tpu7Mxzn.net
スマンぐぐったらすぐ出てきたわ
ReDoS攻撃というやつだな
正規表現が標準で使える言語でパターンマッチのタイムアウト設定できるやつってあんのかな

657:デフォルトの名無しさん
23/02/22 02:52:40.50 Lq+l8VAY.net
勉強になった

658:デフォルトの名無しさん
23/02/28 19:25:23.88 LpLAZFFY.net
●Regular Expressionの使用環境
秀丸エディタ
●検索か置換か?
置換
●説明
正規表現で加減算したいです
perlの場合これでできるそうです
検索:columnIndex([\d]+)
置換:columnIndex@{[$1+1]}
●対象データ
columnIndex001 = "aaa";
columnIndex002 = "bbb";
columnIndex003 = "ccc";
●希望する結果
columnIndex002 = "aaa";
columnIndex003 = "bbb";
columnIndex004 = "ccc";

659:デフォルトの名無しさん
23/02/28 21:40:28.89 k7F1eRIt.net
perlの置換の式はただのスクリプトとしての演算だからなあ
無理なんじゃね

660:デフォルトの名無しさん
23/02/28 21:52:42.51 3RvLxpuD.net
俺だったらエクセルに貼って分解して計算して足し込んでcsvに出力する

661:デフォルトの名無しさん
23/02/28 22:16:00.68 HPZ5xkxF.net
秀丸にも専用のスクリプト言語的なのなかったっけ?
それ使えばワンチャンあるが素直に汎用のスクリプト言語使った方が楽かも

662:デフォルトの名無しさん
23/02/28 22:25:04.50 LpLAZFFY.net
そうかありがとう
B2&TEXT(C2+1,"000")&D2な感じでエクセルに計算させます

663:デフォルトの名無しさん
23/03/05 15:30:49.38 kbQORjCn.net
chmateの名前欄ng正規表現について
ここの正規表現は拡張正規表現だよね?
ワッチョイ消しあぼーんは(?<!\))$だけど、この中の\って何?
それと\(ス[プ|ッ]+ Sd(5f|bf)の中の\って何?

正規表現なら\は直後のメタ文字打ち消しだけど拡張正規表現においては何を意味するの?

664:デフォルトの名無しさん
23/03/05 16:48:59.22 zxnSBXGX.net
メタ文字消し
|のことならor

665:デフォルトの名無しさん
23/03/05 17:13:11.22 /VGFBid9.net
今まさに書き込もうとしてた。ググったらchmateのNG表記も標準正規表現なんだな
俺が何で拡張正規表現かと勘違いしたかというと、|は標準正規表現では使えないからLinuxなら-Eをオプションに付けて拡張正規表現にする必要があると習ったから
chmateでは|が使えるけどメタ文字打ち消しのバックスラッシュも使うというのはどういう事なの?

666:デフォルトの名無しさん
23/03/05 22:34:50.68 jasgpIrF.net
>>642
rubyの3.2は出来ます。
URLリンク(www.ruby-lang.org)
Regexpのタイムアウトの導入

667:デフォルトの名無しさん
23/03/25 11:22:38.54 YDfCdrWh.net
/~/という書き方のとき以外でスラッシュ/を\エスケープする必要があるケースはありますか?

668:デフォルトの名無しさん
23/04/17 19:32:17.83 5c7uVWzN.net
「0」と「1」からなる文字列のうち、「0」と「1」を同数含む文字列にマッチする
正規表現は存在しません。
正規表現よりも強力な検索方法で↑の文字列にもマッチさせることができるようなソフトは
存在しますか?

669:デフォルトの名無しさん
23/04/17 19:44:56.00 sl+3Awil.net
python

670:デフォルトの名無しさん
23/04/17 20:33:36.29 waI8rtvz.net
つらい

671:デフォルトの名無しさん
23/04/17 21:06:25.43 z5E2eHg0.net
URLリンク(regex101.com)

672:デフォルトの名無しさん
23/04/17 21:29:53.48 W4QVtvW8.net
JavaScriptで書くかな

673:デフォルトの名無しさん
23/04/17 23:02:23.02 HlIFmrYC.net
正規表現よりも「強力な」検索方法ってどう言う事?
それチェックするだけならBASICだって出来るだろうに

674:デフォルトの名無しさん
23/04/17 23:14:49.47 aBS+jUDM.net
あのさあ
>>657を見た後でそんなこと言ってるの?
>>657の末尾に$をつけりゃチェックできるだろうに

675:デフォルトの名無しさん
23/04/18 00:49:04.02 HEwUJcz7.net
URLリンク(regex101.com)

676:デフォルトの名無しさん
23/04/18 01:55:03.99 0xKKyM+T.net
wwなんじゃこの無意味なやつww

677:デフォルトの名無しさん
23/04/18 01:55:30.29 0xKKyM+T.net
全くチェックできてないやんwww

678:デフォルトの名無しさん
23/04/18 03:16:09.61 +QStg837.net
正規表現だけで頑張りすぎる奴はアホ

679:デフォルトの名無しさん
23/04/18 10:37:46.66 1M+dv0CB.net
> 「0」と「1」を同数含む文字列にマッチする
これが部分文字列も含むのなら最初の「0111011110001100000…」のところだけでも
で01, 10とか01111000, 111000, 1100, 0011とか011101111000110000とか
他にもあるけどまあ沢山あるわな

こんなんチェックして何の意味があるのか知らんけど

680:デフォルトの名無しさん
23/04/18 11:53:15.97 mLPBXdJt.net
>>661のは01以外の文字が存在してるのを失念してるので、少しだけ修正
^([^01]|0[^01]*?(?1)*?1|1[^01]*?(?1)*?0)++$

681:デフォルトの名無しさん
23/04/18 11:55:59.03 mLPBXdJt.net
あ、すまん
>「0」と「1」からなる文字列のうち
を忘れてた

682:デフォルトの名無しさん
23/04/18 12:04:05.08 mLPBXdJt.net
おまけに>>666は冗長だったしね
^([^01]|0(?1)*?1|1(?1)*?0)++$

683:デフォルトの名無しさん
23/04/18 12:07:01.90 y8YzUN5p.net
なぜある範囲の文字列を認識できる正規表現が重用されるのでしょうか?

たとえば、文脈自由文法により生成される文字列を認識できるような検索ソフトは
ないのでしょうか?

684:デフォルトの名無しさん
23/04/18 12:19:50.17 VZPIsbzr.net
何故妙な所でわざわざ改行を入れるのでしょうか?

685:デフォルトの名無しさん
23/04/19 15:37:27.88 DhCp7Dkf.net
たとえばHTMLの<title>の直後だけ判定したいときに
マッチしなかったら長いページの最後まで<title>~を探し続けるの無駄だと思うんだけど
<title>のところだけ見終わったら判定打ち切ることってできる?

686:デフォルトの名無しさん
23/04/19 17:20:57.30 WqdbOhNP.net
URLリンク(regex101.com)

687:デフォルトの名無しさん
23/04/19 18:18:09.16 DhCp7Dkf.net
>>672
ありがとう!

688:デフォルトの名無しさん
23/04/19 22:28:52.49 ndERcjBg.net
>>669
計算量が小さいことが数学的に証明されているから
文脈自由文法は計算量が大きい

689:デフォルトの名無しさん
23/05/10 15:31:44.13 7WScgW4R.net
下記の文字列でナンバリングの重複


690:を除去するにはどうすればいいですか? かまいたちの知らんけど #37 #37 「梅沢富美男とドライブ旅!やりたいこと詰め込んだら喜ぶ、知らんけど」 [GAORA] 2023年05月10日.ts 千鳥の相席食堂 #199 #199 藤岡弘、&藤岡真威人の旅! ’田舎出身&ロケマスター芸人’の千鳥がツッ [スカイA] 2023年05月08日.ts ナンバリングが同一かどうかを考慮しなければ下記で可能かなと思うのですが、 (#[0-9]{1,})[\S\s]*(#[0-9]{1,}) ナンバリングが同一である場合に除去するってことは可能なのでしょうか? ※「正規表現は、.NET Framework で提供される正規表現の全ての機能が使えます」ってヘルプにあります



691:デフォルトの名無しさん
23/05/10 15:43:18.27 7WScgW4R.net
[\S\s]* は 改行を考慮してみただけで何でもよかったので、無視してください。

692:デフォルトの名無しさん
23/05/10 15:49:49.18 XkmajJ+H.net
s/(#\d+ )\1/$1/

693:デフォルトの名無しさん
23/05/10 15:56:15.66 yXmZBCRQ.net
#37 #371

694:デフォルトの名無しさん
23/05/10 16:24:45.76 XkmajJ+H.net
>>678
なんか問題ある?

まあ例は基本形であって\1というものがあるということを教えればいいだけだけどね

695:デフォルトの名無しさん
23/05/10 16:34:36.66 KWVZdtYA.net
誤爆しないかチェックしたかったんでしょ
そんな噛み付か無くても良かろうよ

696:デフォルトの名無しさん
23/05/10 16:44:00.86 7WScgW4R.net
>>677
これでいけそうです、ありがとうございます

\1 の働きが 何か分からないんですが、何て言葉で検索すればいいですか?

697:デフォルトの名無しさん
23/05/10 16:52:01.37 7WScgW4R.net
あ、キャプションってやつですかね。
こうなか?

s/(.*)(#\d+ )\2(.*)/$1 $2 $3/

698:デフォルトの名無しさん
23/05/10 16:52:49.70 7WScgW4R.net
こうかな

699:デフォルトの名無しさん
23/05/10 16:57:22.57 XkmajJ+H.net
前後を不定長にするとバックトラックの量が半端じゃなくなるよ
数千倍数万倍それ以上の場合数にあっという間になるので
どれほど爆発的に増えるか考えてみてくれ

700:デフォルトの名無しさん
23/05/10 17:23:53.71 H/PxYykp.net
正規表現はChatGPTと相性いいなぁ
すげー間違ったことも返されるけど検証もさせられるしやテストケースも生成出来て超便利


次ページ
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch