[過去ログ]
Regular Expression(正規表現) Part16 (1002レス)
Regular Expression(正規表現) Part16 http://mevius.5ch.net/test/read.cgi/tech/1635936601/
上
下
前
次
1-
新
通常表示
512バイト分割
レス栞
このスレッドは過去ログ倉庫に格納されています。
次スレ検索
歴削→次スレ
栞削→次スレ
過去ログメニュー
338: デフォルトの名無しさん [sage] 2022/07/02(土) 15:23:26.16 ID:+K04BJMF *+ 強欲 ++ 最大一致させたらバックトラックしない * 欲張り + 最大一致させた後、残りの式が不一致になったらバックトラックする *? 無欲 +? 欲張りと逆。最小一致後にバックトラック バックトラック 条件を満たす範囲で探索 ・欲張りは1文字放棄 ・無欲は1文字追加 して試行する http://mevius.5ch.net/test/read.cgi/tech/1635936601/338
339: 298 [] 2022/07/02(土) 18:24:54.77 ID:rrBNdWeF てか、↓の文法的解説をできる方はこのスレにはいないのでしょうか? (?<=店)[^〒]*?〒\d{3}-\d{4}\s++ http://mevius.5ch.net/test/read.cgi/tech/1635936601/339
340: デフォルトの名無しさん [sage] 2022/07/02(土) 18:51:12.29 ID:+K04BJMF (?<=店) 戻り読み。式(店)と次の文字の「間」の位置に一致。abcに対し(?<=ab)ならbとcの間に一致する。アンカー(^$)と同様 [^〒]*? 「〒」以外の文字に最小一致(無欲) 〒 「〒」の文字 \d{3}-\d{4} 「数字3つ」「-」「数字4つ」 \s++ 「\s」に最大一致(強欲) http://mevius.5ch.net/test/read.cgi/tech/1635936601/340
341: 298 [] 2022/07/02(土) 18:58:50.57 ID:rrBNdWeF >>340 ありがとうございます。 $1に(?<=店)を代入しているのはなんとなく理解できるのですが、住所の$2にはどの部分で代入しているのでしょうか? http://mevius.5ch.net/test/read.cgi/tech/1635936601/341
342: デフォルトの名無しさん [sage] 2022/07/02(土) 19:30:02.98 ID:UTWJe5+B [^〒]*?〒は最小量指定子使わないで、[^〒]*〒でよいのでは? この*は0回以上の「〒以外」の文字にマッチだから、貪欲であっても貪欲でなくても、結局一番初めに出てくる「〒」手前までしかマッチできない。 http://mevius.5ch.net/test/read.cgi/tech/1635936601/342
343: デフォルトの名無しさん [] 2022/07/02(土) 19:38:03.70 ID:UTWJe5+B >>336 貪欲のほうがコストが常にかかるかというとそうじゃない。 場合によっては非貪欲のほうが大量にバックトラックが発生して計算コストかかることもある。 http://mevius.5ch.net/test/read.cgi/tech/1635936601/343
344: 298 [] 2022/07/02(土) 19:41:17.46 ID:rrBNdWeF てか、不思議なことに、 1、検索文字列→ (?<=店)[^〒]*?〒\d{3}-\d{4}\s++ 置換文字列→ , 2、検索文字列→ (?<=店)[^〒]*?〒\d{3}-\d{4}\s++ 置換文字列→ $1,$2 で、同じ結果が出るんです http://mevius.5ch.net/test/read.cgi/tech/1635936601/344
345: 298 [] 2022/07/02(土) 19:42:31.78 ID:rrBNdWeF つまり、2は文法的に間違ってる、ってことですかね? http://mevius.5ch.net/test/read.cgi/tech/1635936601/345
346: 298 [] 2022/07/02(土) 19:45:54.43 ID:rrBNdWeF てか、Notepad++はカシコイから、 置換文字列→ $1,$2 を、 置換文字列→ , と、置き換えて処理してるんですかね? http://mevius.5ch.net/test/read.cgi/tech/1635936601/346
347: デフォルトの名無しさん [sage] 2022/07/02(土) 19:46:39.19 ID:+K04BJMF 面白いから見守るわw http://mevius.5ch.net/test/read.cgi/tech/1635936601/347
348: デフォルトの名無しさん [sage] 2022/07/02(土) 19:57:48.35 ID:+K04BJMF >>342 一致しない場合に無駄にバックトラックさせることになるだけなので [^〒]*+〒 と強欲で良いんじゃね http://mevius.5ch.net/test/read.cgi/tech/1635936601/348
349: デフォルトの名無しさん [sage] 2022/07/02(土) 21:11:04.97 ID:FJKEiIOc >>348 確かにマッチしない場合にバックトラックの発生を抑えるために強欲にするのはありだと思う。 ただ、PCREとかだと[^〒]*〒の場合、Auto Processが動作して勝手に強欲化するから書かなくてもいいはず。 今回のEditorはしらんけど。 http://mevius.5ch.net/test/read.cgi/tech/1635936601/349
350: デフォルトの名無しさん [sage] 2022/07/03(日) 11:46:22.30 ID:DiSdIFQe 初心者のうちは強欲は使わないほうがいい気がする そもそも鈍器のページから店名と住所を取り出すだけの正規表現を書く場合にキャプチャしない書き方や バックトラックを抑制する書き方をする必要はない 「策士策に溺れる」になってるから質問者に何を教えるべきなのかもう一度考えるべし http://mevius.5ch.net/test/read.cgi/tech/1635936601/350
351: デフォルトの名無しさん [sage] 2022/07/03(日) 12:00:27.48 ID:J9cIk4yD 貪欲禁止って*や+を使うなってことけ? http://mevius.5ch.net/test/read.cgi/tech/1635936601/351
352: デフォルトの名無しさん [sage] 2022/07/03(日) 12:44:06.06 ID:HH+h1Cia possessiveのことだろ http://mevius.5ch.net/test/read.cgi/tech/1635936601/352
353: デフォルトの名無しさん [sage] 2022/07/03(日) 13:50:59.22 ID:J9cIk4yD 手足をもぎ取られた気分や… http://mevius.5ch.net/test/read.cgi/tech/1635936601/353
354: デフォルトの名無しさん [sage] 2022/07/03(日) 14:32:42.77 ID:nkFK6+7O >>350 初心者が強欲使わないでいつ強欲の動作を知るの? それとも初心者はみんな量指定子を持つ環境を使うべきって主張かな? http://mevius.5ch.net/test/read.cgi/tech/1635936601/354
355: デフォルトの名無しさん [sage] 2022/07/03(日) 15:36:23.88 ID:ZjFQgG61 > 使わないほうがいい気がする 「気がする」でついつい無駄コード書いちゃう強迫性不安障害の人かな? > 「策士策に溺れる」になってるから質問者に何を教えるべきなのかもう一度考えるべし 底辺コーダーが良く使う言い訳 (俺に分かりやすい) 平易なやり方しか認めない!(`・ω・´)キリッ http://mevius.5ch.net/test/read.cgi/tech/1635936601/355
356: デフォルトの名無しさん [sage] 2022/07/03(日) 17:56:24.35 ID:DiSdIFQe 正規表現を考えるときには複雑な情報を単純化する作業が必要になるんだがそういう意味では質問者のほうが才能がある 「店」と「東京都」という2つのキーワードさえ見つけられれば目的を果たせることを見抜いていた それに対して回答者たちは単純だった依頼を複雑化させたあげく質問者を困らせ続けた 戻り読みを正規表現の先頭に置いてキャプチャを回避することが本当に処理量の軽減になっているのかも疑問 鈍器のページからテキストエディタで店名と住所を取り出すだけ
の作業に正規表現の高速化を考えるのはもはやコント 君らには問題を単純化する能力が足りないからその点を改善せよ http://mevius.5ch.net/test/read.cgi/tech/1635936601/356
357: デフォルトの名無しさん [sage] 2022/07/03(日) 18:00:06.22 ID:ZjFQgG61 >>356 >>340 店の直後から郵便番号まで、と十分に単純だと思うが君はこれが複雑なものに見えるのかな? http://mevius.5ch.net/test/read.cgi/tech/1635936601/357
358: デフォルトの名無しさん [sage] 2022/07/03(日) 18:09:59.22 ID:hqJYlR9w >>356 取り敢えず君は書く文章を改善しよう 殆ど愚痴だよねそれ http://mevius.5ch.net/test/read.cgi/tech/1635936601/358
359: デフォルトの名無しさん [sage] 2022/07/03(日) 18:20:19.30 ID:K4HcDkkQ どうしようもないケースを除いて「東京都」なんてのをハードコーディングするのは筋が悪いと言わざるを得ない http://mevius.5ch.net/test/read.cgi/tech/1635936601/359
360: デフォルトの名無しさん [sage] 2022/07/03(日) 18:23:09.07 ID:BZUl5BA7 それはともかく、キャプチャグループが無いのに気づいてないのを指摘してあげろよ $1,$2に対応するものがないので両方ともヌルになってる http://mevius.5ch.net/test/read.cgi/tech/1635936601/360
361: デフォルトの名無しさん [sage] 2022/07/03(日) 18:34:54.70 ID:BC52HWP8 >>344 >>346 不思議だとかカシコイだとか面白すぎるんですけどw それ書いてる>>314には$1なんてどこにも書いて無いのにw http://mevius.5ch.net/test/read.cgi/tech/1635936601/361
362: デフォルトの名無しさん [sage] 2022/07/03(日) 19:05:13.97 ID:ur8aI9T4 >>356 >>351,354についての答えが欲しい http://mevius.5ch.net/test/read.cgi/tech/1635936601/362
363: デフォルトの名無しさん [sage] 2022/07/03(日) 19:53:34.01 ID:RqS+SurZ 文章からして発達障害とかそのボーダーでしょ 鉄道マニアとか特撮マニアに多いタイプのガイジ http://mevius.5ch.net/test/read.cgi/tech/1635936601/363
364: デフォルトの名無しさん [sage] 2022/07/03(日) 19:57:25.26 ID:THTbKALg >>359 あなたPG気質もわかるけど、 その位置が空欄となる可能性がないのであれば どのみち47都道府県をORで並べるハードコーディングになるよw http://mevius.5ch.net/test/read.cgi/tech/1635936601/364
365: デフォルトの名無しさん [sage] 2022/07/03(日) 19:58:39.99 ID:BZUl5BA7 351は論外だろ 強欲を貪欲に変えてるし http://mevius.5ch.net/test/read.cgi/tech/1635936601/365
366: デフォルトの名無しさん [] 2022/07/03(日) 20:14:59.04 ID:Qz5VC9/y >>365 正規表現のコンテキストにおいて、強欲と貪欲にどんな違いがあるか教えて http://mevius.5ch.net/test/read.cgi/tech/1635936601/366
367: デフォルトの名無しさん [sage] 2022/07/03(日) 20:15:30.32 ID:nkFK6+7O >>365 正規表現に関してはどっちも同じ なぜなら元の英語greed(greedy)の直訳だから 辞書引けばわかるとおり、greedは強欲であり貪欲でもある http://mevius.5ch.net/test/read.cgi/tech/1635936601/367
上
下
前
次
1-
新
書
関
写
板
覧
索
設
栞
歴
あと 635 レスあります
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.008s