[過去ログ] Regular Expression(正規表現) Part16 (1002レス)
1-

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
329
(1): 2022/07/01(金)23:25 ID:oUsXu5GC(3/3) AAS
Notepad++のことならGUIのダイアログの左下の右に「.は改行と一致」てのがあるじゃろ
330: 298 2022/07/01(金)23:40 ID:FKzEqydA(16/16) AAS
>>329
ありがとうございます。Notepad++で、「.は改行と一致」にチェックをいれて、
店.+東京都
,
で、次を検索でポチると、
最初の東京都ではなく、最後の東京都、つまりほぼ全文を選択してしまいます。
331: 2022/07/02(土)00:04 ID:BdV6t7uW(1) AAS
正規表現の基本は強欲
なるべく長い文字列にマッチしようとする
332: 2022/07/02(土)09:05 ID:mrmEg2+h(1/2) AAS
> 基本は強欲

20年このスレにいて初めて知りました
333: 2022/07/02(土)09:58 ID:At3W7bIA(1/2) AAS
20年正規表現使ってて強欲すぎて困ったことないの?
※ 用語として強欲はあまりいい意味には使わないから個人的には貧欲の方がいいなぁ
334
(1): 2022/07/02(土)10:08 ID:N6Y3zR8M(1) AAS
ひんよく? 貧
どんよく 貪欲
335: 2022/07/02(土)10:24 ID:ophljRqK(1) AAS
そんなとっくに概出のこと言われても困ります
336
(1): 2022/07/02(土)12:38 ID:mrmEg2+h(2/2) AAS
貧欲の動作は考えてみればすごく非効率な気がしますね
10万文字の文章に対して「.*」を使ったら10万文字の末尾まで食ってから戻ってきますからね
337: 2022/07/02(土)13:18 ID:At3W7bIA(2/2) AAS
>>334
すまん、素で間違ってたわ... orz
338: 2022/07/02(土)15:23 ID:+K04BJMF(1/4) AAS
*+ 強欲 ++ 最大一致させたらバックトラックしない
* 欲張り + 最大一致させた後、残りの式が不一致になったらバックトラックする
*? 無欲 +? 欲張りと逆。最小一致後にバックトラック

バックトラック
条件を満たす範囲で探索
・欲張りは1文字放棄
・無欲は1文字追加
して試行する
339: 298 2022/07/02(土)18:24 ID:rrBNdWeF(1/5) AAS
てか、↓の文法的解説をできる方はこのスレにはいないのでしょうか?
(?<=店)[^〒]*?〒\d{3}-\d{4}\s++
340
(2): 2022/07/02(土)18:51 ID:+K04BJMF(2/4) AAS
(?<=店) 戻り読み。式(店)と次の文字の「間」の位置に一致。abcに対し(?<=ab)ならbとcの間に一致する。アンカー(^$)と同様
[^〒]*? 「〒」以外の文字に最小一致(無欲)
〒 「〒」の文字
\d{3}-\d{4} 「数字3つ」「-」「数字4つ」
\s++ 「\s」に最大一致(強欲)
341: 298 2022/07/02(土)18:58 ID:rrBNdWeF(2/5) AAS
>>340
ありがとうございます。
$1に(?<=店)を代入しているのはなんとなく理解できるのですが、住所の$2にはどの部分で代入しているのでしょうか?
342
(1): 2022/07/02(土)19:30 ID:UTWJe5+B(1/2) AAS
[^〒]*?〒は最小量指定子使わないで、[^〒]*〒でよいのでは?
この*は0回以上の「〒以外」の文字にマッチだから、貪欲であっても貪欲でなくても、結局一番初めに出てくる「〒」手前までしかマッチできない。
343: 2022/07/02(土)19:38 ID:UTWJe5+B(2/2) AAS
>>336
貪欲のほうがコストが常にかかるかというとそうじゃない。
場合によっては非貪欲のほうが大量にバックトラックが発生して計算コストかかることもある。
344
(1): 298 2022/07/02(土)19:41 ID:rrBNdWeF(3/5) AAS
AA省
345: 298 2022/07/02(土)19:42 ID:rrBNdWeF(4/5) AAS
つまり、2は文法的に間違ってる、ってことですかね?
346
(1): 298 2022/07/02(土)19:45 ID:rrBNdWeF(5/5) AAS
てか、Notepad++はカシコイから、
置換文字列→ $1,$2
を、
置換文字列→ ,
と、置き換えて処理してるんですかね?
347: 2022/07/02(土)19:46 ID:+K04BJMF(3/4) AAS
面白いから見守るわw
348
(1): 2022/07/02(土)19:57 ID:+K04BJMF(4/4) AAS
>>342
一致しない場合に無駄にバックトラックさせることになるだけなので
[^〒]*+〒
と強欲で良いんじゃね
349: 2022/07/02(土)21:11 ID:FJKEiIOc(1) AAS
>>348
確かにマッチしない場合にバックトラックの発生を抑えるために強欲にするのはありだと思う。
ただ、PCREとかだと[^〒]*〒の場合、Auto Processが動作して勝手に強欲化するから書かなくてもいいはず。
今回のEditorはしらんけど。
350
(1): 2022/07/03(日)11:46 ID:DiSdIFQe(1/3) AAS
初心者のうちは強欲は使わないほうがいい気がする

そもそも鈍器のページから店名と住所を取り出すだけの正規表現を書く場合にキャプチャしない書き方や
バックトラックを抑制する書き方をする必要はない

「策士策に溺れる」になってるから質問者に何を教えるべきなのかもう一度考えるべし
351
(1): 2022/07/03(日)12:00 ID:J9cIk4yD(1/2) AAS
貪欲禁止って*や+を使うなってことけ?
352
(1): 2022/07/03(日)12:44 ID:HH+h1Cia(1) AAS
possessiveのことだろ
353: 2022/07/03(日)13:50 ID:J9cIk4yD(2/2) AAS
手足をもぎ取られた気分や…
354
(1): 2022/07/03(日)14:32 ID:nkFK6+7O(1/8) AAS
>>350
初心者が強欲使わないでいつ強欲の動作を知るの?
それとも初心者はみんな量指定子を持つ環境を使うべきって主張かな?
355: 2022/07/03(日)15:36 ID:ZjFQgG61(1/2) AAS
> 使わないほうがいい気がする
「気がする」でついつい無駄コード書いちゃう強迫性不安障害の人かな?

> 「策士策に溺れる」になってるから質問者に何を教えるべきなのかもう一度考えるべし
底辺コーダーが良く使う言い訳
(俺に分かりやすい) 平易なやり方しか認めない!(`・ω・´)キリッ
356
(3): 2022/07/03(日)17:56 ID:DiSdIFQe(2/3) AAS
正規表現を考えるときには複雑な情報を単純化する作業が必要になるんだがそういう意味では質問者のほうが才能がある
「店」と「東京都」という2つのキーワードさえ見つけられれば目的を果たせることを見抜いていた

それに対して回答者たちは単純だった依頼を複雑化させたあげく質問者を困らせ続けた
戻り読みを正規表現の先頭に置いてキャプチャを回避することが本当に処理量の軽減になっているのかも疑問
鈍器のページからテキストエディタで店名と住所を取り出すだけの作業に正規表現の高速化を考えるのはもはやコント

君らには問題を単純化する能力が足りないからその点を改善せよ
357: 2022/07/03(日)18:00 ID:ZjFQgG61(2/2) AAS
>>356
>>340
店の直後から郵便番号まで、と十分に単純だと思うが君はこれが複雑なものに見えるのかな?
358: 2022/07/03(日)18:09 ID:hqJYlR9w(1) AAS
>>356
取り敢えず君は書く文章を改善しよう
殆ど愚痴だよねそれ
1-
あと 644 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.026s