[過去ログ]
Regular Expression(正規表現) Part16 (1002レス)
Regular Expression(正規表現) Part16 http://mevius.5ch.net/test/read.cgi/tech/1635936601/
上
下
前
次
1-
新
通常表示
512バイト分割
レス栞
このスレッドは過去ログ倉庫に格納されています。
次スレ検索
歴削→次スレ
栞削→次スレ
過去ログメニュー
325: デフォルトの名無しさん [sage] 2022/07/01(金) 22:28:36.91 ID:oUsXu5GC ピリオドはmオプションつけると改行にもマッチするやで mオプションがついてるかは環境と指定したオプションによるやで http://mevius.5ch.net/test/read.cgi/tech/1635936601/325
326: デフォルトの名無しさん [sage] 2022/07/01(金) 22:36:48.49 ID:TkUsKSE8 mオプションじゃなくてsオプションなのでは? http://mevius.5ch.net/test/read.cgi/tech/1635936601/326
327: デフォルトの名無しさん [sage] 2022/07/01(金) 22:50:04.22 ID:oUsXu5GC 調べてきた mオプションはRuby、oniguruma系、Meryはこれのはず sオプションなのはPerl系 Notepad++/SciTEは専用オプションがある らしい、やってみて確かめたほうがいいね http://mevius.5ch.net/test/read.cgi/tech/1635936601/327
328: 298 [] 2022/07/01(金) 23:07:58.13 ID:FKzEqydA ありがとうございます。では、 店.+東京都 に、mオプションを付けるとするとどう書けばいいのですか? ↓にはそれ系の記載がありません。 https://murashun.jp/article/programming/regular-expression.html https://userweb.mnet.ne.jp/nakama/ http://mevius.5ch.net/test/read.cgi/tech/1635936601/328
329: デフォルトの名無しさん [sage] 2022/07/01(金) 23:25:18.67 ID:oUsXu5GC Notepad++のことならGUIのダイアログの左下の右に「.は改行と一致」てのがあるじゃろ http://mevius.5ch.net/test/read.cgi/tech/1635936601/329
330: 298 [] 2022/07/01(金) 23:40:21.16 ID:FKzEqydA >>329 ありがとうございます。Notepad++で、「.は改行と一致」にチェックをいれて、 店.+東京都 , で、次を検索でポチると、 最初の東京都ではなく、最後の東京都、つまりほぼ全文を選択してしまいます。 http://mevius.5ch.net/test/read.cgi/tech/1635936601/330
331: デフォルトの名無しさん [sage] 2022/07/02(土) 00:04:51.39 ID:BdV6t7uW 正規表現の基本は強欲 なるべく長い文字列にマッチしようとする http://mevius.5ch.net/test/read.cgi/tech/1635936601/331
332: デフォルトの名無しさん [sage] 2022/07/02(土) 09:05:29.52 ID:mrmEg2+h > 基本は強欲 20年このスレにいて初めて知りました http://mevius.5ch.net/test/read.cgi/tech/1635936601/332
333: デフォルトの名無しさん [sage] 2022/07/02(土) 09:58:17.51 ID:At3W7bIA 20年正規表現使ってて強欲すぎて困ったことないの? ※ 用語として強欲はあまりいい意味には使わないから個人的には貧欲の方がいいなぁ http://mevius.5ch.net/test/read.cgi/tech/1635936601/333
334: デフォルトの名無しさん [sage] 2022/07/02(土) 10:08:22.29 ID:N6Y3zR8M ひんよく? 貧 どんよく 貪欲 http://mevius.5ch.net/test/read.cgi/tech/1635936601/334
335: デフォルトの名無しさん [sage] 2022/07/02(土) 10:24:47.75 ID:ophljRqK そんなとっくに概出のこと言われても困ります http://mevius.5ch.net/test/read.cgi/tech/1635936601/335
336: デフォルトの名無しさん [sage] 2022/07/02(土) 12:38:50.86 ID:mrmEg2+h 貧欲の動作は考えてみればすごく非効率な気がしますね 10万文字の文章に対して「.*」を使ったら10万文字の末尾まで食ってから戻ってきますからね http://mevius.5ch.net/test/read.cgi/tech/1635936601/336
337: デフォルトの名無しさん [sage] 2022/07/02(土) 13:18:37.74 ID:At3W7bIA >>334 すまん、素で間違ってたわ... orz http://mevius.5ch.net/test/read.cgi/tech/1635936601/337
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
メモ帳
(0/65535文字)
上
下
前
次
1-
新
書
関
写
板
覧
索
設
栞
歴
あと 648 レスあります
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.010s