[過去ログ]
Regular Expression(正規表現) Part16 (1002レス)
Regular Expression(正規表現) Part16 http://mevius.5ch.net/test/read.cgi/tech/1635936601/
上
下
前
次
1-
新
通常表示
512バイト分割
レス栞
このスレッドは過去ログ倉庫に格納されています。
次スレ検索
歴削→次スレ
栞削→次スレ
過去ログメニュー
1: デフォルトの名無しさん [] 2021/11/03(水) 19:50:01.71 ID:ebAE+z9+ Regular Expressionスレです。 質問する場合は必ず実装言語や処理系ソフトウェア名を示してください。 前スレ Regular Expression(正規表現) Part15 https://mevius.5ch.net/test/read.cgi/tech/1568640311/ 次スレは>>980宜しく 天ぷら等>>2以降 http://mevius.5ch.net/test/read.cgi/tech/1635936601/1
2: デフォルトの名無しさん [sage] 2021/11/03(水) 19:51:06.60 ID:ebAE+z9+ スルーされにくい質問のテンプレと例 ●Regular Expressionの使用環境 Java1.5 ●検索か置換か? 検索 ●説明 各行の1番目のAまでを検索したい ●対象データ ABCA BCAA CABA ●希望する結果 ABCA ^ BCAA ^^^ CABA ^^ ※ ^ はアンダーラインだそうな ^^; http://mevius.5ch.net/test/read.cgi/tech/1635936601/2
3: デフォルトの名無しさん [sage] 2021/11/03(水) 19:51:26.32 ID:ebAE+z9+ ◆関連サイト 正規表現メモ http://www.kt.rim.or.jp/~kbk/regex/regex.html Perl正規表現雑技 http://www.din.or.jp/~ohzaki/regex.htm 詳説 正規表現 http://www.oreilly.co.jp/books/9784873113593/ 正規表現クックブック http://www.oreilly.co.jp/books/9784873114507/ 正規表現プログラミングFAQ http://capslockabcjp.kitunebi.com/faq.html .NET Framework の正規表現 | Microsoft Docs https://docs.microsoft.com/ja-jp/dotnet/standard/base-types/regular-ex
pressions 正規表現 - JavaScript | MDN https://developer.mozilla.org/ja/docs/Web/JavaScript/Guide/Regular_Expressions 鬼車 https://github.com/kkos/oniguruma 鬼雲 https://github.com/k-takata/Onigmo bregonig.dll(鬼雲の正規表現をサクラエディタ等で使用するためのライブラリ) http://k-takata.o.oo7.jp/mysoft/bregonig.html Boost.Regex 1.45.0 (日本語訳) http://alpha.sourceforge.jp/devel/boost.regex_ja_1_45_0.pdf 秀丸: 複数行にまたがる検索について http://homepage2.nifty.com/jr-kun/hidemaru_qa/4_regulr.html#RETURNS
サクラエディタ: 改行 http://d.hatena.ne.jp/myokoym/20101219/1292779058 ※ サクラエディタでは複数行に渡る検索・置換は出来ません。 http://mevius.5ch.net/test/read.cgi/tech/1635936601/3
4: デフォルトの名無しさん [sage] 2021/11/03(水) 19:54:20.40 ID:ebAE+z9+ 正規表現技術入門 https://gihyo.jp/book/2015/978-4-7741-7270-5 ↑の著者の一人であり Onigmo(鬼雲)やbregonig.dll の作者でもあるtakata先生のツイとQiitaの記事 https://twitter.com/k_takata 鬼雲に非包含オペレータを実装した話 https://qiita.com/k-takata/items/4e45121081c83d3d5bfd https://twitter.com/5chan_nel (5ch newer account) http://mevius.5ch.net/test/read.cgi/tech/1635936601/4
5: デフォルトの名無しさん [sage] 2021/11/03(水) 20:59:16.79 ID:554LNcID >>1 スレ立てありがとう ところで、C++コンパイラごとにbasic_regex::replace()の置換後文字列のバックスラッシュがエスケープされたりされなかったりするのが厄介ですね http://mevius.5ch.net/test/read.cgi/tech/1635936601/5
6: デフォルトの名無しさん [] 2021/11/03(水) 21:43:29.56 ID:K+2zXBgv https://troutlurefishing.jp/regex.htm https://murashun.jp/article/programming/regular-expression.html https://www.itmedia.co.jp/news/articles/2111/02/news174.html http://mevius.5ch.net/test/read.cgi/tech/1635936601/6
7: デフォルトの名無しさん [] 2021/11/04(木) 11:16:22.06 ID:JyTL4wpj nifty の URL 死んでるな http://mevius.5ch.net/test/read.cgi/tech/1635936601/7
8: デフォルトの名無しさん [] 2021/11/04(木) 11:42:25.33 ID:diIHvWke DeNAが個人ブログから正規表現の表丸パクりしてたのワロタ http://mevius.5ch.net/test/read.cgi/tech/1635936601/8
9: デフォルトの名無しさん [sage] 2021/11/04(木) 11:59:17.47 ID:iRkMc3Gk 丸パクリならまだいい 改変もまともにできないのはヤバい 正規表現の例 マッチする例 Coo+el Coopel https://pbs.twimg.com/media/FC7n-5zaUAETKej.jpg http://mevius.5ch.net/test/read.cgi/tech/1635936601/9
10: デフォルトの名無しさん [sage] 2021/11/04(木) 12:31:32.50 ID:B00ATyI8 >>9 どゆこと? http://mevius.5ch.net/test/read.cgi/tech/1635936601/10
11: デフォルトの名無しさん [sage] 2021/11/04(木) 12:38:22.63 ID:Gz31zHb0 >>10 oの1回以上の繰り返しじゃ pにマッチするわけないです http://mevius.5ch.net/test/read.cgi/tech/1635936601/11
12: デフォルトの名無しさん [] 2021/11/04(木) 12:48:06.96 ID:diIHvWke 元がgoogleを例にしてたからこうなったのかな いずれにしてもワロタ http://mevius.5ch.net/test/read.cgi/tech/1635936601/12
13: デフォルトの名無しさん [sage] 2021/11/04(木) 12:49:09.54 ID:iCxb5Ekd >>10 https://regex101.com/r/8ri3Js/1 http://mevius.5ch.net/test/read.cgi/tech/1635936601/13
14: デフォルトの名無しさん [sage] 2021/11/04(木) 14:21:26.74 ID:B00ATyI8 >>11 ああ、勝手に.入れてた ほんとだひどいな http://mevius.5ch.net/test/read.cgi/tech/1635936601/14
15: デフォルトの名無しさん [] 2021/11/04(木) 14:53:30.31 ID:/D1z+6Mc 劣化コピーだから責められてて 上品だったら叩けない訳か http://mevius.5ch.net/test/read.cgi/tech/1635936601/15
16: デフォルトの名無しさん [sage] 2021/11/05(金) 08:20:43.21 ID:+Hevqd/d 本歌取りと言う言葉もありますし http://mevius.5ch.net/test/read.cgi/tech/1635936601/16
17: デフォルトの名無しさん [sage] 2021/11/05(金) 11:40:57.68 ID:pLniUbgZ オマージュ・インスパイア→胡散臭い 本歌取り→凄そう http://mevius.5ch.net/test/read.cgi/tech/1635936601/17
18: デフォルトの名無しさん [sage] 2021/11/05(金) 12:37:40.52 ID:1iAtfRIf 本歌取りに良いイメージがあるのは、この行為が和歌の世界で伝統的に許されてきたからだ。 http://mevius.5ch.net/test/read.cgi/tech/1635936601/18
19: デフォルトの名無しさん [sage] 2021/11/06(土) 20:39:20.57 ID:oKHbtIv+ 祝☆ vim 3o+年 http://mevius.5ch.net/test/read.cgi/tech/1635936601/19
20: デフォルトの名無しさん [sage] 2021/11/06(土) 21:18:49.31 ID:G8Zn1Puj >>19 スレ違い http://mevius.5ch.net/test/read.cgi/tech/1635936601/20
21: デフォルトの名無しさん [sage] 2021/11/07(日) 00:36:45.12 ID:kpV1ZjX8 (/(>>1)/,'$1乙') http://mevius.5ch.net/test/read.cgi/tech/1635936601/21
22: デフォルトの名無しさん [sage] 2021/11/15(月) 00:01:22.12 ID:5vPB6h42 今までに無いかつら、非包含オペレータ https://bokete.jp/odai/533281 http://mevius.5ch.net/test/read.cgi/tech/1635936601/22
23: デフォルトの名無しさん [sage] 2021/11/15(月) 10:09:56.72 ID:xJpmlO5M vimで文字列処理ってマイナーなのか? UIでマッチをハイライトしながらパターンを書けるし、書いたパターンと処理はperlやsedのようにコマンドライン引数で渡してシェルスクリプトに組み込める(UI無し、非インタラクティブモード) vimはバッファするからストリーム処理には向かないくて、パイプにはperlを使うけど、バッチ処理ならvimの方が速い あと、個人的にアサーションの記法(\@<=等)も、()が深くなりがちなperl系の(?<=等)より好みだ http://mevius.5ch.ne
t/test/read.cgi/tech/1635936601/23
24: デフォルトの名無しさん [sage] 2021/11/15(月) 10:57:59.40 ID:Y0jbpZIM 惜しむらくは、マッチ後の単純でない処理を委託するvimscriptがクソなところだと思う、regex自体は十分パワフル perlは任意のロジックをperl式に移譲するのが楽、パターンにも書けるし、大抵インラインで済む vim9で大幅に言語変えるっぽいけど、どうなるやら http://mevius.5ch.net/test/read.cgi/tech/1635936601/24
25: デフォルトの名無しさん [sage] 2021/11/15(月) 11:19:19.50 ID:vc2enCPn ()が減るケースって実用的にはあまり無いんじゃないか?アサーションの修飾対象がグループなら、どうせ()が必要になるわけだし アサーションの\@が後置なのはperl系より一貫性があって良い設計だと思う、?,+,* etcと同列の修飾子とみなせる http://mevius.5ch.net/test/read.cgi/tech/1635936601/25
26: デフォルトの名無しさん [sage] 2021/11/15(月) 21:36:14.28 ID:5vPB6h42 非包含オペレータの提案者の方の過去ログ漁ってたらすごいの出てきた ttp://www.a-k-r.org/pub/2013-06-02-rubyhiroba-akr.pdf これを使えば2次元の彼女が見つかりそう http://mevius.5ch.net/test/read.cgi/tech/1635936601/26
27: デフォルトの名無しさん [] 2021/11/17(水) 00:30:09.97 ID:pGjzwEdG pythonで文字列分割をする時 1:・ー└等の1文字と、半角スペース3つ以上のいずれかで文字列を分解したい re.splitで、思いつく限りやってみましたが、うまく行きませんでした。 [・ー└]|( ){3,} [・ー└( ){3,}] [・ー└(( ){3,})] 試しにre.sub(〜, "", ・・・)で文字列が削除出来るかどうか試したときは半角スペース3つが消えました。 いくつかの文字 もしくは 特定の文字の繰り返し、で文字列を分解する書き方はありますでしょうか http://mevius.5ch.
net/test/read.cgi/tech/1635936601/27
28: デフォルトの名無しさん [] 2021/11/17(水) 00:32:30.60 ID:pGjzwEdG 上記で、分かりにくくてすみません、 >1:・ー└等の1文字と、半角スペース3つ以上のいずれかで文字列を分解したい この「1:」は気にしないでください。 また、re.subで上手く行ったのは、1つめに書いた [・ー└]|( ){3,} です http://mevius.5ch.net/test/read.cgi/tech/1635936601/28
29: デフォルトの名無しさん [sage] 2021/11/17(水) 01:31:56.09 ID:vtK5EVRE [・ー└]|( ){3,} → 合ってる [・ー└( ){3,}] → 間違い [・ー└(( ){3,})] → 間違い 文字コードが uft-8 以外で書かれている文書を扱ってるとか? そうなら python 文字コード でググって文書を uft-8 に変換してから split http://mevius.5ch.net/test/read.cgi/tech/1635936601/29
30: デフォルトの名無しさん [sage] 2021/11/17(水) 02:52:26.84 ID:CiQU0O+7 ( → (?: http://mevius.5ch.net/test/read.cgi/tech/1635936601/30
31: デフォルトの名無しさん [sage] 2021/11/17(水) 04:06:28.28 ID:PbEjqT95 >>29 そもそも単文字なんだしグループにする必要なくね? http://mevius.5ch.net/test/read.cgi/tech/1635936601/31
32: デフォルトの名無しさん [sage] 2021/11/17(水) 09:04:44.07 ID:GPq3lXDW >>28 上でも書かれているが()は要らんよ。 import re s='これ・はテスートなの└かテ スト なの です' print(re.split('[・ー└]| {3,}',s)) http://mevius.5ch.net/test/read.cgi/tech/1635936601/32
33: デフォルトの名無しさん [sage] 2021/11/17(水) 10:12:43.95 ID:A6BSd3Zu 正規表現に生の半角スペース使うのは一見気づきにくくて余り好きじゃないなぁ \x20 にしない人多いのかな http://mevius.5ch.net/test/read.cgi/tech/1635936601/33
34: デフォルトの名無しさん [sage] 2021/11/17(水) 10:36:58.04 ID:6wJ0temu 俺は生派 \sを使う人もいるけど俺は嫌 http://mevius.5ch.net/test/read.cgi/tech/1635936601/34
35: デフォルトの名無しさん [sage] 2021/11/17(水) 10:39:17.25 ID:GPq3lXDW エディタの設定で可視化もできるしね。>半角スペース http://mevius.5ch.net/test/read.cgi/tech/1635936601/35
36: デフォルトの名無しさん [sage] 2021/11/17(水) 10:39:47.05 ID:6wJ0temu this is a pen を this\x20is\x20a\x20pen とかも嫌 http://mevius.5ch.net/test/read.cgi/tech/1635936601/36
37: デフォルトの名無しさん [sage] 2021/11/17(水) 10:56:31.05 ID:A6BSd3Zu 文章になってるものまで生で使わないと言うわけじゃないけどな ブラケットの中で使う場合なんかは生は避けたいわ [ ]とかよく見かけるけど、分かりづらい なお、\sは半角スペースを含むけどそれ自体じゃないので普通は区別して使うでしょ http://mevius.5ch.net/test/read.cgi/tech/1635936601/37
38: 29 [sage] 2021/11/17(水) 11:01:36.46 ID:vtK5EVRE this[ ]is[ ]a[ ]pen proxomitronのフィルタ職人をやってるときはこうやってた 今だと this\ is\ a\ pen かな? 使ったことないけどw \s は環境によっては全角スぺにマッチするから気を付けないとね http://mevius.5ch.net/test/read.cgi/tech/1635936601/38
39: デフォルトの名無しさん [sage] 2021/11/17(水) 11:32:27.19 ID:6wJ0temu >>37 エディタ上でははっきりと区別がつくけど こんな所へ貼る場合は確かに分かり難いね まあこの場合は目的が分かってるので分かりやすいとも言えるけど http://mevius.5ch.net/test/read.cgi/tech/1635936601/39
40: デフォルトの名無しさん [sage] 2021/11/17(水) 20:33:29.63 ID:vtK5EVRE Jane用の正規表現を掲示板に貼るときにはタブ文字のところを 【tab】 って 書き換えて貼ってたなぁ、しかしJane自体が廃れて使うことが無くなった http://mevius.5ch.net/test/read.cgi/tech/1635936601/40
41: 27 [] 2021/11/17(水) 23:51:26.36 ID:pGjzwEdG 27です こんなにも早く教えてくださってとても助かりました! ()が要らなかったんですね。勉強になります! ありがとうございました! http://mevius.5ch.net/test/read.cgi/tech/1635936601/41
42: 29 [sage] 2021/11/19(金) 20:58:09.22 ID:rZqXBgxj これの検証してみた Absence operator is broken #150 https://github.com/k-takata/Onigmo/issues/150 ・検証コード (ruby 3.0.2p107 (2021-07-07 revision 0db68f0233) [x64-mingw32]) p /(?~a.*[bv].*c)/.match("000a111v222c333b444c555") ・結果 #<MatchData "000a111v222c333b444"> a〜v〜c を含んでしまってるのでバグで確定 原因は最初にマッチした段階で検索を打ち切ってしまっていて 別のパターンを見逃している 別のパターンを見つける
必要があることは非包含オペレータ提案者さんの論文で 図付きで説明されてるけどこれを見落としてしまったオチ? 直すには論文通りに実装すれば良いだけなので直せないことは無さそう 自分がプログラミング出来れば直したいけどミジンコなので手も足も出ず.. ------------------------------------------------------- >>41 おつー http://mevius.5ch.net/test/read.cgi/tech/1635936601/42
43: 29 [sage] 2021/11/19(金) 23:35:42.78 ID:rZqXBgxj ついでにもう1つだけ Use of \K when the string to match after \K can be empty #152 https://github.com/k-takata/Onigmo/issues/152 これは \K を使ってゼロ幅マッチになった場合に次の検索開始位置が 予期せず1つ進んでしまう問題のようだ gsubの仕様かなと思ったけど (?<=\w) と \w\K の2つが違う結果になるのは 違和感ある、\K での ゼロ幅マッチ後の pos を進まないようにすれば直りそう takata先生の代わりにちゃちゃっと始末してくれるスーパーハカーさん募集 http://meviu
s.5ch.net/test/read.cgi/tech/1635936601/43
44: 29 [sage] 2021/11/20(土) 00:06:32.69 ID:dCkHZW0G \K より前で文字を消費していない場合は pos は進まないようだ /\K/ → pos進まず /.\K/ → 予期せずpos進んでしまう http://mevius.5ch.net/test/read.cgi/tech/1635936601/44
45: デフォルトの名無しさん [sage] 2021/11/20(土) 13:49:08.95 ID:S4adbGs3 >>42 イシュー150の起票者がオリジナルの鬼車作者さんやんけw http://mevius.5ch.net/test/read.cgi/tech/1635936601/45
46: 29 [sage] 2021/11/20(土) 14:09:45.26 ID:dCkHZW0G >>45 そうなんだよね、だから気になってた ------------------------------------------------- >>42 とは別の検証をしてみた p /(?~a.*b.*c|222)/.match("000a111b222c333") #<MatchData "000a111b22"> これは期待通りにマッチした、これが正しく動くということは 論文の読み落としではないね、失礼しました 問題は同一posでマッチ文字数が最短になるマッチを見つけなければいけないが それをしていないことみたいだ この処理って結構な処理量にな
りそうだけど大丈夫なのかな? オペレータ提案者さんのサンプルコードではどうなってるんだろ? プログラムが読めないから対応出来てるのか分からない.. あまりに重いようなら量指定子を使えるようにしたほうが良いかもしれない .* を .{0,1000} に書き換えて処理量を限定させるのと同じで (?~abc){0,1000} みたいな指定が出来るようにすれば.. http://mevius.5ch.net/test/read.cgi/tech/1635936601/46
メモ帳
(0/65535文字)
上
下
前
次
1-
新
書
関
写
板
覧
索
設
栞
歴
あと 956 レスあります
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.040s