[過去ログ]
Regular Expression(正規表現) Part16 (1002レス)
Regular Expression(正規表現) Part16 http://mevius.5ch.net/test/read.cgi/tech/1635936601/
上
下
前
次
1-
新
通常表示
512バイト分割
レス栞
このスレッドは過去ログ倉庫に格納されています。
次スレ検索
歴削→次スレ
栞削→次スレ
過去ログメニュー
リロード規制
です。10分ほどで解除するので、
他のブラウザ
へ避難してください。
876: デフォルトの名無しさん [sage] 2023/09/13(水) 21:32:58.14 ID:qhl2oEPa >>874-875 ありがとうございます。875さんの方でプログラムがパーフェクトに動くものが叶いました。 http://mevius.5ch.net/test/read.cgi/tech/1635936601/876
877: デフォルトの名無しさん [sage] 2023/09/14(木) 00:22:01.99 ID:L47o5ku7 鬼車は結局Unicode15対応版がリリースされなかったな http://mevius.5ch.net/test/read.cgi/tech/1635936601/877
878: デフォルトの名無しさん [sage] 2023/09/16(土) 22:56:08.84 ID:dIGSEJlt 同じワードの繰り返し(回数指定)を除外する正規表現を教えてください http://mevius.5ch.net/test/read.cgi/tech/1635936601/878
879: デフォルトの名無しさん [sage] 2023/09/17(日) 07:04:17.16 ID:jNYPDoV+ 除外?? http://mevius.5ch.net/test/read.cgi/tech/1635936601/879
880: デフォルトの名無しさん [sage] 2023/09/17(日) 10:23:51.82 ID:ht+84nM7 こういうこと? abcxyzacz → bxy http://mevius.5ch.net/test/read.cgi/tech/1635936601/880
881: デフォルトの名無しさん [sage] 2023/09/17(日) 14:29:52.53 ID:yn1jo0MJ "にゃんたま"が3回以上登場する文字列から全ての"にゃんたま"を取り除く \A(?=(?:(?:(?!にゃんたま)[\s\S])*にゃんたま){3})((?:(?!にゃんたま)[\s\S])*)にゃんたま|\G((?:(?!にゃんたま)[\s\S])*)にゃんたま http://mevius.5ch.net/test/read.cgi/tech/1635936601/881
882: デフォルトの名無しさん [sage] 2023/09/17(日) 14:33:30.19 ID:yn1jo0MJ 置換後の文字列: $1$2 http://mevius.5ch.net/test/read.cgi/tech/1635936601/882
883: デフォルトの名無しさん [sage] 2023/09/17(日) 15:23:07.94 ID:yn1jo0MJ スマン、\Gの前に(?!\A)を置いてくれ http://mevius.5ch.net/test/read.cgi/tech/1635936601/883
884: デフォルトの名無しさん [sage] 2023/09/17(日) 16:53:03.56 ID:oNTID2ix 3回連続して出現する単語を削除 //javascript s = '鼠牛虎兎龍蛇ねこねこねこ牛牛牛虎虎蛇蛇蛇蛇蛇龍龍兎'; console.log(s.replace(/(?:(.+)\1{2})/g, '')); #python s = '鼠牛虎兎龍蛇ねこねこねこ牛牛牛虎虎蛇蛇蛇蛇蛇龍龍兎' print(re.sub(r'(?:(.+)\1{2})', '', s)) http://mevius.5ch.net/test/read.cgi/tech/1635936601/884
885: デフォルトの名無しさん [sage] 2023/09/17(日) 17:05:16.38 ID:Fm9hMrUa \nを30回以上は非表示するにはどうしたらいいですか http://mevius.5ch.net/test/read.cgi/tech/1635936601/885
886: デフォルトの名無しさん [sage] 2023/09/17(日) 17:18:53.47 ID:jNYPDoV+ 非表示?? http://mevius.5ch.net/test/read.cgi/tech/1635936601/886
887: デフォルトの名無しさん [sage] 2023/09/17(日) 17:41:10.52 ID:PjfamyxI \nがn回以上除外で http://mevius.5ch.net/test/read.cgi/tech/1635936601/887
888: デフォルトの名無しさん [sage] 2023/09/17(日) 22:51:45.08 ID:jyrM2LRG ●Regular Expressionの使用環境 Perl ●検索か置換か? 検索 ●説明 後ろから2つ目の/以降を取得したい ●対象データ /a/bb/ccc/dddd/eeeee/cgi/sample.cgi ●希望する結果 /cgi/sample.cgi お願いします http://mevius.5ch.net/test/read.cgi/tech/1635936601/888
889: デフォルトの名無しさん [sage] 2023/09/18(月) 01:07:38.93 ID:e1xt8o+y .*\K/.*/.* http://mevius.5ch.net/test/read.cgi/tech/1635936601/889
890: デフォルトの名無しさん [sage] 2023/09/23(土) 15:35:56.62 ID:UU1JiicL 何回連続とか何番目とかってのは正規表現じゃなくて言語でなんとかした方がいいのでは 可読性的な観点からでも http://mevius.5ch.net/test/read.cgi/tech/1635936601/890
891: デフォルトの名無しさん [sage] 2023/09/25(月) 14:32:09.00 ID:w/fMdm7Q 正規表現じゃなく言語表現をなんとかした方がいい http://mevius.5ch.net/test/read.cgi/tech/1635936601/891
892: デフォルトの名無しさん [sage] 2023/09/25(月) 15:45:13.07 ID:b6Bm13IE 正規表現じゃなく性器表現とした方がいい http://mevius.5ch.net/test/read.cgi/tech/1635936601/892
893: デフォルトの名無しさん [sage] 2023/09/25(月) 15:46:57.59 ID:b6Bm13IE 正規表現じゃなく性器表現とかなんとかにした方がいい http://mevius.5ch.net/test/read.cgi/tech/1635936601/893
894: デフォルトの名無しさん [sage] 2023/09/26(火) 17:43:27.65 ID:WhLFttTP 添削って受け付けてたっけ? 自分が求める結果は得られてるけど、それでいいのかどうか http://mevius.5ch.net/test/read.cgi/tech/1635936601/894
895: デフォルトの名無しさん [sage] 2023/10/03(火) 15:05:59.66 ID:pjWozC8L >>894 You ここで見せちゃいなよ、meが見てあげるよ http://mevius.5ch.net/test/read.cgi/tech/1635936601/895
896: デフォルトの名無しさん [] 2023/10/15(日) 05:59:22.52 ID:qeiyy+lM oniguruma Release 6.9.9 Update Unicode version 15.1.0 NEW API: ONIG_OPTION_MATCH_WHOLE_STRING Fixed: (?I) option was not enabled for character classes (Issue #264). Changed specification to check for incorrect POSIX bracket (Issue #253). Changed [[:punct:]] in Unicode encodings to be compatible with POSIX definition. (Issue #268) Fixed: ONIG_OPTION_FIND_LONGEST behavior > ONIG_OPTION_MATCH_WHOLE_STRING マッチした終端の位置がendに
なることを要求 マッチした開始の位置はstartでなくても良いらしい oniguruma/test/test_options.c x2(ONIG_OPTION_MATCH_WHOLE_STRING, "a", "aaaa", 3, 4); // OK (4文字目のaにマッチ) > [[:punct:]] Changed the definition of [:punct:] in Unicode encodings from \p{P} to \p{PosixPunct} = \p{P} + \p{S}. (PosixPunct is a new addition.) http://mevius.5ch.net/test/read.cgi/tech/1635936601/896
897: デフォルトの名無しさん [sage] 2023/10/15(日) 06:13:36.53 ID:qeiyy+lM > Fixed: ONIG_OPTION_FIND_LONGEST behavior oniguruma/test/test_options.c x2(ONIG_OPTION_FIND_LONGEST, "a(b|bc)", "ab", 0, 2); // OK ( "ab" にマッチ) 最左最長一致からガチ最長一致になってる http://mevius.5ch.net/test/read.cgi/tech/1635936601/897
898: デフォルトの名無しさん [] 2023/10/15(日) 06:27:13.95 ID:qeiyy+lM 間違えた、こっちだった oniguruma/test/test_options.c x2(ONIG_OPTION_FIND_LONGEST, "a(b|bc)", "abc", 0, 3); // OK ( "abc" にマッチ) // マルチバイト文字には非対応のまま x2(ONIG_OPTION_FIND_LONGEST, "ab|あ", "abあ", 2, 5); // OK ( "あ" にマッチ) UTF-32 にエンコードしてから使えばいいのかしら http://mevius.5ch.net/test/read.cgi/tech/1635936601/898
899: デフォルトの名無しさん [sage] 2023/10/20(金) 08:36:56.63 ID:S3IcPVBq Strawberry Perl https://strawberryperl.com/releases.html 32bit版が出なくなった。64bitに乗り換えよう。(全銀) http://mevius.5ch.net/test/read.cgi/tech/1635936601/899
900: デフォルトの名無しさん [sage] 2023/10/20(金) 16:11:58.36 ID:8kCGh912 >>899 ZIP edition が無い… http://mevius.5ch.net/test/read.cgi/tech/1635936601/900
901: デフォルトの名無しさん [sage] 2023/10/21(土) 14:33:23.21 ID:43n7K7Fq tar.gzで我慢しなさい http://mevius.5ch.net/test/read.cgi/tech/1635936601/901
902: デフォルトの名無しさん [sage] 2023/10/29(日) 10:19:38.81 ID:zDgIETfO アルファベットのみにマッチする文字クラスを[a-Z]と書けない ASCIIコード表を決めた人達は今頃失敗したと思ってるんだろうか http://mevius.5ch.net/test/read.cgi/tech/1635936601/902
903: デフォルトの名無しさん [sage] 2023/10/29(日) 12:34:50.74 ID:vOjtdftv 初心者向けクイズ Q: /w にマッチするアルファベット以外の文字がひとつあります。その文字とは、一体何でしょうか? http://mevius.5ch.net/test/read.cgi/tech/1635936601/903
904: デフォルトの名無しさん [sage] 2023/10/29(日) 12:42:28.97 ID:BaFdPLsN アンダースコート http://mevius.5ch.net/test/read.cgi/tech/1635936601/904
905: デフォルトの名無しさん [sage] 2023/10/29(日) 12:45:28.88 ID:zDgIETfO アンダースロー http://mevius.5ch.net/test/read.cgi/tech/1635936601/905
906: デフォルトの名無しさん [sage] 2023/10/29(日) 13:20:31.22 ID:y5KdwCim アンダーニンジャ http://mevius.5ch.net/test/read.cgi/tech/1635936601/906
907: デフォルトの名無しさん [sage] 2023/10/29(日) 15:41:31.84 ID:zDgIETfO ニンジャリバンバン http://mevius.5ch.net/test/read.cgi/tech/1635936601/907
908: デフォルトの名無しさん [sage] 2023/10/29(日) 19:20:26.89 ID:dO2GnsiA 正解はスラッシュでした http://mevius.5ch.net/test/read.cgi/tech/1635936601/908
909: デフォルトの名無しさん [sage] 2023/10/29(日) 19:49:37.09 ID:zDgIETfO (/w\) http://mevius.5ch.net/test/read.cgi/tech/1635936601/909
910: デフォルトの名無しさん [sage] 2023/10/30(月) 20:06:53.46 ID:wzEyUd/K ASCIIコード表について調べてみたら特定の1ビットを0にするか1にするかで 大文字小文字が変換出来るようにするための順番らしい 並びの便利さより処理効率が優先されてた、先人の知恵に敬礼 http://mevius.5ch.net/test/read.cgi/tech/1635936601/910
911: デフォルトの名無しさん [sage] 2023/10/30(月) 20:59:27.53 ID:dhg2pdyL どうせ範囲チェックはしないといけないんだから それだったら引き算や足し算で大文字小文字変換できちゃう まあ昔はbit演算より算術演算にステップ数が掛かってたからその当時は良かったんだろうけど http://mevius.5ch.net/test/read.cgi/tech/1635936601/911
912: デフォルトの名無しさん [sage] 2023/10/31(火) 18:36:44.19 ID:X00tNW2d 今時のマシンのことしか考えなくていいなら足し引きで良さそうだけど 遅いマシンのことまで考えるならビット演算一択になるんだろうな アルファベットが32文字だったら隙間出来なかったのに SHIFT_JISのダメ文字問題も最初からEUC-JPにしとけば苦労しなかったのにな http://mevius.5ch.net/test/read.cgi/tech/1635936601/912
913: デフォルトの名無しさん [sage] 2023/10/31(火) 21:57:53.63 ID:27STA2Pg 正規表現は改行の扱いが難しいなあ やらかすときはたいてい改行の処理でミスる http://mevius.5ch.net/test/read.cgi/tech/1635936601/913
914: デフォルトの名無しさん [sage] 2023/11/01(水) 09:19:33.19 ID:DBguvWIQ . が改行にマッチしないのを失念してってのは何度もやってる http://mevius.5ch.net/test/read.cgi/tech/1635936601/914
915: デフォルトの名無しさん [] 2023/11/01(水) 11:38:27.61 ID:ikHnu6pN ●Regular Expressionの使用環境 サクラエディタ(bregoing.dll Ver4.20 with Onigmo 6.2.0) ●検索か置換か? 検索 ●説明 キムラタクヤの略称を検索するために (キムラ)と(タクヤ)からそれぞれ1字以上使って並べた単語にマッチする正規表現を作りました ^(キ|ム|ラ|キム|ムラ|キラ|キムラ)(タ|ク|ヤ|タク|クヤ|タヤ|タクヤ)$ 文字数や単語数が増えたときひどいのでもっと上手な書き方を教えてください ●マッチする文字列 キク キラク ムラタヤ ●マッチさせない文字列
キム キムラ タクヤ http://mevius.5ch.net/test/read.cgi/tech/1635936601/915
916: デフォルトの名無しさん [] 2023/11/01(水) 11:38:37.53 ID:ikHnu6pN ●Regular Expressionの使用環境 サクラエディタ(bregoing.dll Ver4.20 with Onigmo 6.2.0) ●検索か置換か? 検索 ●説明 キムラタクヤの略称を検索するために (キムラ)と(タクヤ)からそれぞれ1字以上使って並べた単語にマッチする正規表現を作りました ^(キ|ム|ラ|キム|ムラ|キラ|キムラ)(タ|ク|ヤ|タク|クヤ|タヤ|タクヤ)$ 文字数や単語数が増えたときひどいのでもっと上手な書き方を教えてください ●マッチする文字列 キク キラク ムラタヤ ●マッチさせない文字列
キム キムラ タクヤ http://mevius.5ch.net/test/read.cgi/tech/1635936601/916
917: デフォルトの名無しさん [sage] 2023/11/01(水) 12:08:10.81 ID:oh2mJ3WA ^(?:キ?ム?ラ?)(?<=\S)(?=\S)(?:タ?ク?ヤ?)$ http://mevius.5ch.net/test/read.cgi/tech/1635936601/917
918: デフォルトの名無しさん [sage] 2023/11/01(水) 14:40:34.08 ID:DBguvWIQ 同じ人かは分からないけど超優秀な回答者がここ1,2年前から来てくれてる 多くの閲覧者にとっても勉強になるからありたがいことです http://mevius.5ch.net/test/read.cgi/tech/1635936601/918
919: デフォルトの名無しさん [sage] 2023/11/01(水) 16:00:59.53 ID:G1jsC9Xy じつはその人AIだよ http://mevius.5ch.net/test/read.cgi/tech/1635936601/919
920: デフォルトの名無しさん [sage] 2023/11/01(水) 17:01:21.99 ID:ikHnu6pN >>917 ありがとうございます動きました 3語以上の場合はこれでできてますか? ^(?:キ?ム?)(?<=\S)(?=\S{2})((?:ラ?タ?)(?<=\S{2})(?=\S)(?:ク?ヤ?))$ http://mevius.5ch.net/test/read.cgi/tech/1635936601/920
921: デフォルトの名無しさん [sage] 2023/11/01(水) 17:03:51.95 ID:DBguvWIQ AIと言われても違和感が無いから困る、人間だったほうがいい サクラエディタを少し触ってみたが \r を \c- \n を \c* に書き換えてもマッチした このことは恐らくbregoing.dllの作者氏でも知らないのでは http://mevius.5ch.net/test/read.cgi/tech/1635936601/921
922: デフォルトの名無しさん [sage] 2023/11/01(水) 18:26:59.70 ID:upaRAmPk >>920 キムクヤにマッチするから駄目だね >>916のように自分で組み合わせを展開する以外の方法はわからないね http://mevius.5ch.net/test/read.cgi/tech/1635936601/922
923: デフォルトの名無しさん [sage] 2023/11/01(水) 21:03:12.97 ID:bvA/YDb8 最後で語数チェックすれば? (?<=\S{3})$ http://mevius.5ch.net/test/read.cgi/tech/1635936601/923
924: デフォルトの名無しさん [sage] 2023/11/01(水) 22:35:57.76 ID:8ROMQdip ^(キ?ム?ラ?)(タ?ク?ヤ?)$(?!\1|\2) ^(キ?ム?)(ラ?タ?)(ク?ヤ?)$(?!\1)(?!\2)(?!\3) ^(キ?ム?)(?!.*+$\k<-1>)(ラ?タ?)(?!.*+$\k<-1>)(ク?ヤ?)(?!.*+$\k<-1>)$ ^(?=(.++))(?:キ?ム?)(?!\k<-1>)(?=(.++))(?:ラ?タ?)(?!\k<-1>)(?=(.++))(?:ク?ヤ?)(?!\k<-1>)$ http://mevius.5ch.net/test/read.cgi/tech/1635936601/924
925: デフォルトの名無しさん [sage] 2023/11/02(木) 08:03:41.39 ID:ztJD977Y 文字数も単語数も拡張性もばっちりです ご指導ありがとうございました http://mevius.5ch.net/test/read.cgi/tech/1635936601/925
926: デフォルトの名無しさん [sage] 2023/11/02(木) 09:18:56.98 ID:/CeYlFrx > $(?!\1|\2) これもすごい、こんなの思い付かない 私なら(?(1))を使おうとしてグチャる こういうのを作れる人になりたかった、羨ましい限りだ http://mevius.5ch.net/test/read.cgi/tech/1635936601/926
927: デフォルトの名無しさん [] 2023/11/02(木) 09:22:55.91 ID:kxWwWLf8 >>910 アルファベットが32文字だったら誰も困らなかったはず http://mevius.5ch.net/test/read.cgi/tech/1635936601/927
928: デフォルトの名無しさん [sage] 2023/11/02(木) 11:56:22.72 ID:YMFW9tw8 各文字列から最低2文字以上含まれてる略称にだけマッチすることもできる? http://mevius.5ch.net/test/read.cgi/tech/1635936601/928
929: デフォルトの名無しさん [sage] 2023/11/02(木) 13:01:27.99 ID:eLjTHeK1 ^(?=.(.++))(?:キ?ム?ラ?)(?!.?\k<-1>)(?=.(.++))(?:タ?ク?ヤ?)(?!.?\k<-1>)$ ^(?=.{1}(.++))(?:キ?ム?ラ?)(?!.{0,1}\k<-1>)(?=.{1}(.++))(?:タ?ク?ヤ?)(?!.{0,1}\k<-1>)$ http://mevius.5ch.net/test/read.cgi/tech/1635936601/929
930: デフォルトの名無しさん [sage] 2023/11/02(木) 19:36:53.03 ID:/CeYlFrx ラノベ 「1日でキムタクの一般項が出来てるからパソコンそっと閉じて見なかったことにする」 http://mevius.5ch.net/test/read.cgi/tech/1635936601/930
931: デフォルトの名無しさん [sage] 2023/11/03(金) 08:34:37.96 ID:cY7DSC5H ^[キムラ]{1,2}[タクヤ]{1,2}$ http://mevius.5ch.net/test/read.cgi/tech/1635936601/931
932: デフォルトの名無しさん [sage] 2023/11/03(金) 09:08:43.70 ID:PqFUo1lf それはラキクタにマッチするからボツ(==.) http://mevius.5ch.net/test/read.cgi/tech/1635936601/932
933: デフォルトの名無しさん [sage] 2023/11/03(金) 10:43:13.94 ID:cY7DSC5H ラキクタにマッチしたらダメって条件にはないんだけど‥ http://mevius.5ch.net/test/read.cgi/tech/1635936601/933
934: デフォルトの名無しさん [sage] 2023/11/03(金) 11:44:22.65 ID:PqFUo1lf 確かに言葉ではそんな条件は書いてないね、曖昧3cm http://mevius.5ch.net/test/read.cgi/tech/1635936601/934
935: デフォルトの名無しさん [sage] 2023/11/03(金) 11:50:18.95 ID:zxzLPr4V ^?キ?ム?ラ?タ?クヤ?$が略称条件な流れ? http://mevius.5ch.net/test/read.cgi/tech/1635936601/935
936: デフォルトの名無しさん [sage] 2023/11/03(金) 12:14:21.11 ID:sAJhyk0D ^(?=A)(?=B).*$ http://mevius.5ch.net/test/read.cgi/tech/1635936601/936
937: デフォルトの名無しさん [sage] 2023/11/03(金) 12:18:03.55 ID:PqFUo1lf >>916を読めば文字順通りと受け取るのが妥当だね ちなみにもしこのコマンドがあったら簡単に書けた https://www.proxomitron.info/45/help/Matching-Commands.html#TST ^(キ?ム?ラ?)$TST(\1=..+)(タ?ク?ヤ?)$TST(\2=..+)$ perlなら(??{code})でこのコマンドと同じことが出来るけどサクラエディタのdllでは無理 dllに$SETと$TSTが実装されたら正規表現の幅がめっちゃ広がるけど無理そう // \1 に日本語表記での色が代入される blue$SET(1=青)|yellow$SET(1=黄)|
red$SET(1=赤) http://mevius.5ch.net/test/read.cgi/tech/1635936601/937
938: デフォルトの名無しさん [sage] 2023/11/03(金) 13:00:30.59 ID:RnAsJxc7 >>924 ^(?=(キ?ム?ラ?)(タ?ク?ヤ?)$)[キムラ]{1,}[タクヤ]{1,}$ (?=(キ?ム?ラ?)(タ?ク?ヤ?)(.*+))[キムラ]{1,}[タクヤ]{1,}(?=\3) キキムタククク http://mevius.5ch.net/test/read.cgi/tech/1635936601/938
939: デフォルトの名無しさん [sage] 2023/11/03(金) 18:04:12.94 ID:328LomOy キムラタクヤ人気で🌿 http://mevius.5ch.net/test/read.cgi/tech/1635936601/939
940: デフォルトの名無しさん [] 2023/11/03(金) 19:14:55.49 ID:3J2AA+3k >>937 他人には厳しい条件はたすくせに外部コマンドやperl使うのはokなのかw http://mevius.5ch.net/test/read.cgi/tech/1635936601/940
941: デフォルトの名無しさん [sage] 2023/11/03(金) 20:09:52.31 ID:PqFUo1lf 知ってる外部コマンドは使っていいに決まってる 頭の中では質問見た瞬間に出来てたよ http://mevius.5ch.net/test/read.cgi/tech/1635936601/941
942: デフォルトの名無しさん [sage] 2023/11/03(金) 20:13:40.11 ID:/gQFYHMn 「課す」を「はたす」って読んでるってマ?🤣 http://mevius.5ch.net/test/read.cgi/tech/1635936601/942
943: デフォルトの名無しさん [sage] 2023/11/03(金) 21:12:42.60 ID:PqFUo1lf この外部コマンドを考えた方は2004年に亡くなっている https://en.wikipedia.org/wiki/Scott_R._Lemmon 20年前にこのコマンドを実装済みだったのはやばいな perlの正規表現ですらそんなに機能が無かった時代だ http://mevius.5ch.net/test/read.cgi/tech/1635936601/943
944: デフォルトの名無しさん [sage] 2023/11/03(金) 21:17:14.08 ID:N1OKG/2k 最初から略称と言ってるのに文字順不問だと思うほうがどうかしてる http://mevius.5ch.net/test/read.cgi/tech/1635936601/944
945: デフォルトの名無しさん [sage] 2023/11/04(土) 08:36:40.13 ID:w1sIftMp (正直|ぶっちゃけぇ?)高度すぎて理解が追いつかない http://mevius.5ch.net/test/read.cgi/tech/1635936601/945
946: デフォルトの名無しさん [sage] 2023/11/04(土) 11:16:01.85 ID:PZuBSK2Q カラクリを簡単に説明しよう 1、 (?:キ?ム?ラ?) で文字順を固定 2、 その他の部分でカッコ内でマッチする文字数の制限をかけている 例、 (?:キ?ム?ラ?) が0文字にマッチしたとしよう \1が捕獲した中身は0文字になる (?!\1) の\1の中身が0文字だったら (?!\1) は (?!) と同じ動作になる (?!) は常にマッチを失敗させるから\1が0文字ならマッチ出来ない 結果的にこれが文字数制限になっている ちなみに正規表現にカウント機能があればもっと簡単に書けていた ( (?:
キ$COUNT(x))? (?:ム$COUNT(x))? (?:ラ$COUNT(x))? ) $COUNT(0<x) perlは(?{code})でカウント可能、鬼車もカウント機能を実装済 http://mevius.5ch.net/test/read.cgi/tech/1635936601/946
947: デフォルトの名無しさん [sage] 2023/11/04(土) 14:47:51.87 ID:Xn6+uSVd perlジジイこのスレでも自演してんのかw http://mevius.5ch.net/test/read.cgi/tech/1635936601/947
948: デフォルトの名無しさん [sage] 2023/11/04(土) 17:37:08.01 ID:PZuBSK2Q COBOLジジイからperlジジイにランクアップ http://mevius.5ch.net/test/read.cgi/tech/1635936601/948
949: デフォルトの名無しさん [sage] 2023/11/05(日) 13:03:00.89 ID:q8heJbgz サクラエディタ // 1 \1(a) // 2 \k<name>(?<name>a) 2は1を名前付き括弧にしただけ 1は実行してもマッチに失敗するだけだが2はエラー これはどちらもエラーになるほうが良い http://mevius.5ch.net/test/read.cgi/tech/1635936601/949
950: デフォルトの名無しさん [sage] 2023/11/05(日) 13:07:33.08 ID:q8heJbgz ん?本当にそうか?分からん http://mevius.5ch.net/test/read.cgi/tech/1635936601/950
951: デフォルトの名無しさん [sage] 2023/11/05(日) 15:52:16.56 ID:q8heJbgz 2がエラーになるのは誤りだ、異論ある? いつもの超優秀な人(AI?)の意見を聞かせて欲しい http://mevius.5ch.net/test/read.cgi/tech/1635936601/951
952: デフォルトの名無しさん [sage] 2023/11/06(月) 06:59:13.82 ID:j6L5l5bH 異論はないってことで良いかな、おそらく既知の問題(仕様)だと思われる この問題に長年気付かないとは考えられないから 本来動くべきサンプルを貼って>>949の件は終了とする x2("(?:\\k<n>b|(?<n>a))+", "aab", 0, 3); // ERROR: undefined name <n> reference x2("(?:(?<n>a)|\\k<n>b)+", "aab", 0, 2); // OK x2("(?:\\1b|(a))+", "aab", 0, 3); // OK x2(
"(?:(a)|\\1b)+", "aab", 0, 2); // OK http://mevius.5ch.net/test/read.cgi/tech/1635936601/952
953: デフォルトの名無しさん [sage] 2023/11/06(月) 19:00:47.89 ID:j6L5l5bH 回避策 x2("(?<n>a){0}(?:\\k<n>b|\\g<n>)+", "aab", 0, 3); // OK http://mevius.5ch.net/test/read.cgi/tech/1635936601/953
954: デフォルトの名無しさん [sage] 2023/11/15(水) 17:50:43.57 ID:Karf8A+O 文字列の頭に部分一致するパターンなんですが・・・ 「abcdefg」にマッチするパターンですが、 /^a(?:b(?:c(?:d(?:e(?:f(?:g)?)?)?)?)?)?/ と書くしかないですか? 文字列が長大な場合、ちょっと無理なんですが・・・ (文字はアルファベットとは限らず) WindowsのJScriptですが。 http://mevius.5ch.net/test/read.cgi/tech/1635936601/954
955: デフォルトの名無しさん [sage] 2023/11/15(水) 18:12:27.94 ID:ctqB5947 /^abcdefg/ http://mevius.5ch.net/test/read.cgi/tech/1635936601/955
956: デフォルトの名無しさん [sage] 2023/11/15(水) 18:41:54.66 ID:/mJ+eeiZ 無いんじゃないか? ^(?:abcdefg|abcdef|abcde|abcde|abcd|abc|ab|a) とどっちがマシかな http://mevius.5ch.net/test/read.cgi/tech/1635936601/956
957: デフォルトの名無しさん [sage] 2023/11/16(木) 14:47:23.08 ID:7i/8qZTv /^m/ にマッチして map だけマッチして欲しくない /^m[^a][^p]/ これだと man にマッチしてくれない どう書けばいいですか http://mevius.5ch.net/test/read.cgi/tech/1635936601/957
958: デフォルトの名無しさん [sage] 2023/11/16(木) 14:53:22.83 ID:4tHpE5Jq >>957 否定先読みが使えるなら^m(?!ap)かな? http://mevius.5ch.net/test/read.cgi/tech/1635936601/958
959: デフォルトの名無しさん [sage] 2023/11/16(木) 15:59:06.48 ID:7i/8qZTv ありがとう http://mevius.5ch.net/test/read.cgi/tech/1635936601/959
960: デフォルトの名無しさん [sage] 2023/11/17(金) 04:25:56.84 ID:gwXFy+9L 特定の文字列を検出したい場合、\Q~\Eの~に、その特定の文字列を入れておけば、どんな文字が来ても大丈夫でしょうか? http://mevius.5ch.net/test/read.cgi/tech/1635936601/960
961: デフォルトの名無しさん [sage] 2023/11/17(金) 06:13:31.18 ID:28WV0iMa \Eが来ると困る http://mevius.5ch.net/test/read.cgi/tech/1635936601/961
962: デフォルトの名無しさん [] 2023/11/28(火) 12:33:08.74 ID:vIU65Zk5 正規表現スレがいいと聞いてきました ここがいい正規表現すれですか? $ perl -e '$a="abc"; $a =~ s/(.*)/[$1]/g; print $a . "\n"' [abc][] なんで後ろにカッコが来るん? .*に全部マッチするんだから 二個目の[]が来るなんてお菓子にゃん? http://mevius.5ch.net/test/read.cgi/tech/1635936601/962
963: デフォルトの名無しさん [sage] 2023/11/28(火) 13:42:04.64 ID:EkqG9ePT perlよく知らんがgとったら消える http://mevius.5ch.net/test/read.cgi/tech/1635936601/963
964: デフォルトの名無しさん [sage] 2023/11/28(火) 13:54:45.94 ID:uy7CvN4q 推測だが、 1) .*にabcがマッチする -> [abc] 2) .*は0個でもいいので、末尾位置(NUL)にマッチする -> [] http://mevius.5ch.net/test/read.cgi/tech/1635936601/964
965: デフォルトの名無しさん [sage] 2023/11/28(火) 14:25:52.10 ID:uy7CvN4q 2回目は$a=""の場合と同じだと思えばいい ヌル文字列でも.*だとマッチするでしょ? http://mevius.5ch.net/test/read.cgi/tech/1635936601/965
966: デフォルトの名無しさん [] 2023/11/28(火) 16:18:10.81 ID:vIU65Zk5 >>963 gとったら消える。Rubyも同じらしい。 >>964 []が出るってことはなにかにマッチしてるってことでしょ? >>965 それなら最初の.*にもマッチするじゃん? 一回目にマッチしなくて、二回目にマッチする理由がわからんのよ http://mevius.5ch.net/test/read.cgi/tech/1635936601/966
967: デフォルトの名無しさん [sage] 2023/11/28(火) 16:18:30.67 ID:JJPCdnVt 仮に2回目でマッチする何かがあったとしても .*はgreedyなんだから1回目で消費してないとお菓子イイ http://mevius.5ch.net/test/read.cgi/tech/1635936601/967
968: デフォルトの名無しさん [sage] 2023/11/28(火) 16:20:34.59 ID:JJPCdnVt でもなぁ バグなら今までこんなん気が付かないはずないと思うからどうなんだろ http://mevius.5ch.net/test/read.cgi/tech/1635936601/968
969: デフォルトの名無しさん [] 2023/11/28(火) 16:21:19.02 ID:vIU65Zk5 $ perl -e '$a="abc"; $a =~ s/(.*)$/[$1]/g; print $a . "\n"' [abc][] $ perl -e '$a="abc"; $a =~ s/(.*$)/[$1]/g; print $a . "\n"' [abc][] 後ろに$入れても同じ 行末以降の何にマッチしてんのこれ? http://mevius.5ch.net/test/read.cgi/tech/1635936601/969
970: デフォルトの名無しさん [] 2023/11/28(火) 16:22:48.63 ID:vIU65Zk5 Rubyのコードも持ってきた。持ってきただけだから意味は知らん。 ruby -e 're=/(.*)/; puts %Q(abc).sub(re){ %Q([#$1]) }' [abc] ruby -e 're=/(.*)/; puts %Q(abc).gsub(re){ %Q([#$1]) }' [abc][] http://mevius.5ch.net/test/read.cgi/tech/1635936601/970
971: デフォルトの名無しさん [sage] 2023/11/28(火) 16:44:51.01 ID:wVUnEJO+ ググってみたがperlのそういう”仕様”として定着してるみたいだな 引っかかったことなかったわ http://mevius.5ch.net/test/read.cgi/tech/1635936601/971
972: デフォルトの名無しさん [sage] 2023/11/28(火) 16:47:59.11 ID:uy7CvN4q >>968 1回目の.*で文字列全体がマッチ、2回目でNUL文字列にマッチするのは どの正規表現環境でも同じだと思うよ http://mevius.5ch.net/test/read.cgi/tech/1635936601/972
973: デフォルトの名無しさん [sage] 2023/11/28(火) 16:49:01.41 ID:CppHkuHl 0文字と一致させたくなければ.*ではなく.+と書けよ http://mevius.5ch.net/test/read.cgi/tech/1635936601/973
974: デフォルトの名無しさん [sage] 2023/11/28(火) 16:59:51.73 ID:fB6/42vV >>972 Perlの文字列はNull Terminatedされてないよ /gだとマッチできないか再度確かめるからzero-lengthのempty stringにマッチするんだとさ でも同じ位置でempty stringに2回はマッチしないようなチェックが入ってるからそこで抜けるんだとさ 個人的にはバグだと思うけどPCRE準拠でみんな作ってるから同じ動きをさせたんだろうね regex101で試すとRustだけが一般に期待する動作をしてる http://mevius.5ch.net/test/read.cgi/tech/1635936601/974
975: デフォルトの名無しさん [sage] 2023/11/28(火) 17:02:27.57 ID:fB6/42vV /(.*)$/みたいに末尾のアンカー入れても結果変わらないから余計におかしい ^を入れたら当然防げるけど http://mevius.5ch.net/test/read.cgi/tech/1635936601/975
976: デフォルトの名無しさん [] 2023/11/28(火) 17:09:04.46 ID:vIU65Zk5 >>971 探したけど見つからんかった。 どこにあった? or どうやって探した? キーワードがわからん http://mevius.5ch.net/test/read.cgi/tech/1635936601/976
977: デフォルトの名無しさん [sage] 2023/11/28(火) 18:08:10.66 ID:waKUlTL5 これは長さゼロでマッチした直後に長さゼロにマッチしてposが進まなかったときにマッチを終了するという、頭の悪い正規表現を書くマヌケのために配慮された動作が例外的なんだよ そのおかげで頭の悪い正規表現を書いても無限ループさせずに済んだことにむしろ感謝するべきだね http://mevius.5ch.net/test/read.cgi/tech/1635936601/977
978: デフォルトの名無しさん [sage] 2023/11/28(火) 18:30:16.15 ID:mMoqXMUf (ハクション! http://mevius.5ch.net/test/read.cgi/tech/1635936601/978
979: デフォルトの名無しさん [sage] 2023/11/28(火) 19:16:57.98 ID:6l9rHssS 単に便利だからゼロ幅マッチさせてるん $str =~ s/()/$1,/g; やってみるといいのん http://mevius.5ch.net/test/read.cgi/tech/1635936601/979
980: デフォルトの名無しさん [sage] 2023/11/29(水) 13:08:47.77 ID:yvH2v9xT 正規表現検索は失敗しないかぎり終わらないって話では abcに対して(.*)$が検索される→「abc+末尾」がマッチ、この時点での位置はcの後ろのゼロ幅 残りの部分に対して再度(.*)$が検索される→「ゼロ幅+末尾」がマッチ、cの後ろのゼロ幅が消費される 残りの部分に対して再度(.*)$が検索される→対象を消費しきっているので失敗→検索終了 http://mevius.5ch.net/test/read.cgi/tech/1635936601/980
981: デフォルトの名無しさん [sage] 2023/11/29(水) 14:41:21.44 ID:lw8jVmFR そういうもんだと思って使ってたわ それをバグだと思ってる人がいてびっくりぽんや しかしこういうことに疑問を持つ人は今後伸びるで http://mevius.5ch.net/test/read.cgi/tech/1635936601/981
982: デフォルトの名無しさん [sage] 2023/11/29(水) 17:53:32.44 ID:AoutXZD6 >>980 その理屈で言えば1回目で対象を消費しきってるから2回目が失敗するべき 1回目で消費しきっているにも関わらず2回目のゼロ幅マッチが成功するなら3回目のゼロ幅マッチだって成功するはず そうならないのは対象を消費しきってるかどうかを確認せずにマッチを実施しており最終的には2回連続同一箇所でのゼロ幅マッチという失敗条件に合致してはじかれているから http://mevius.5ch.net/test/read.cgi/tech/1635936601/982
983: デフォルトの名無しさん [sage] 2023/11/29(水) 18:01:27.70 ID:lw8jVmFR 確かにその通りやな、1度目で消費しきっとるはずや http://mevius.5ch.net/test/read.cgi/tech/1635936601/983
984: デフォルトの名無しさん [sage] 2023/11/29(水) 18:06:42.76 ID:lw8jVmFR 分かったつもりになってるだけで全然分かってへんのがおるから ちゃんと本か何かで学習したほうがええで、今までそういう学習をしてへんやろ http://mevius.5ch.net/test/read.cgi/tech/1635936601/984
985: デフォルトの名無しさん [sage] 2023/11/29(水) 20:04:08.42 ID:x7bR/xfi /(.*)$(.*)$((.*)$){999}/ http://mevius.5ch.net/test/read.cgi/tech/1635936601/985
986: デフォルトの名無しさん [sage] 2023/11/29(水) 22:25:25.39 ID:yvH2v9xT >>985 えーと、つまり ・ゼロ幅は消費されない。パーマネントにゼロであり続ける。なので無限にマッチ可能 ・無限にマッチ可能→同じゼロ幅に2回連続マッチしたからといってposを進めたり終了するわけではない てことかな? 2回目以降が発生するかどうかは、、どうなんだろう 前回と完全に同じマッチになるときは試行せず終わる、っぽいけど http://mevius.5ch.net/test/read.cgi/tech/1635936601/986
987: デフォルトの名無しさん [] 2023/12/01(金) 02:37:28.94 ID:07OBAnmr sedの基本正規表現と拡張正規表現だとゼロ幅にマッチしないね 元はPerlのバグだったのが仕様ってことになったのでは? $ printf 'abc' | sed 's/\(.*\)/[\1]/g' [abc] $ printf 'abc' | sed -E 's/(.*)/[\1]/g' [abc] http://mevius.5ch.net/test/read.cgi/tech/1635936601/987
988: デフォルトの名無しさん [sage] 2023/12/01(金) 08:09:57.11 ID:RWimeGTM /^\w+|$/[$&]/ これが[abc][]になるのはおかしいと感じないよね? 前半が末尾まで食い尽くすから$はマッチしないはずだと思う? http://mevius.5ch.net/test/read.cgi/tech/1635936601/988
989: デフォルトの名無しさん [sage] 2023/12/02(土) 00:36:44.31 ID:/f7jnFb0 挙動を仕様書で厳密に定義しているJavaScriptではこうなってた https://tc39.es/ecma262/multipage/text-processing.html#sec-regexp.prototype-@@replace ・1回目のマッチが "abc" すべてを消費する ・2回目のマッチは文字列末尾から始まるけど正規表現が.*なのでマッチングに成功する ただし空文字にマッチした場合、先へ進まなくなることを回避するために 次回開始位置を一つ後ろへずらす処理が入る (12.c.iii.2以下) これにより3回目のマッチは文字
列の終端+1という範囲外の位置から始まることになり失敗に終わる http://mevius.5ch.net/test/read.cgi/tech/1635936601/989
990: デフォルトの名無しさん [sage] 2023/12/07(木) 23:24:41.69 ID:Ug9Hn2aN KEEPのKはあるのにPが無い、何故? http://mevius.5ch.net/test/read.cgi/tech/1635936601/990
991: デフォルトの名無しさん [sage] 2023/12/07(木) 23:31:35.71 ID:Ug9Hn2aN (?<=uma)musu(?=me) 柿憎い uma\Kmusu\Pme 柿安い http://mevius.5ch.net/test/read.cgi/tech/1635936601/991
992: デフォルトの名無しさん [sage] 2023/12/10(日) 09:57:52.47 ID:8JqB6SG/ >>988 思うよ +の後に$を置けば余計にそう思う http://mevius.5ch.net/test/read.cgi/tech/1635936601/992
993: デフォルトの名無しさん [sage] 2023/12/10(日) 13:04:54.79 ID:t3u5G9tC $は「後ろが終端である位置」の指定であって「最後まで全部」という意味ではない なので.+$で文字列を末尾まで消費した後でも再度末尾のゼロ幅にマッチできることはバグでもなんでもない http://mevius.5ch.net/test/read.cgi/tech/1635936601/993
994: デフォルトの名無しさん [sage] 2023/12/10(日) 14:15:57.63 ID:ayXeZXuA 実装上のバグではなく仕様バグだろって話をしてるのがわからないのか? http://mevius.5ch.net/test/read.cgi/tech/1635936601/994
995: デフォルトの名無しさん [sage] 2023/12/10(日) 15:43:26.80 ID:e6Tz3fj/ .*と$でマッチするものが異なるのに.*と.*|$でマッチするものが変わらないのは明らかにバクってるな 正規表現のパターンを変えるだけでperlでは[abc][]にも[abc]にもできるのにsedではこのバグのせいで[abc][]には絶対にできなくなってる $ printf 'abc' | sed -E 's/.*|$/[&]/g' [abc] http://mevius.5ch.net/test/read.cgi/tech/1635936601/995
996: デフォルトの名無しさん [sage] 2023/12/10(日) 15:44:52.66 ID:e6Tz3fj/ s/バク/バグ/ http://mevius.5ch.net/test/read.cgi/tech/1635936601/996
997: デフォルトの名無しさん [sage] 2023/12/13(水) 11:48:29.08 ID:wzNHEkEB ただの仕様だよ、あほらし 次スレよろ http://mevius.5ch.net/test/read.cgi/tech/1635936601/997
998: デフォルトの名無しさん [sage] 2023/12/16(土) 09:00:59.04 ID:KMxF6SWS 次スレ https://mevius.5ch.net/test/read.cgi/tech/1702684760/ http://mevius.5ch.net/test/read.cgi/tech/1635936601/998
999: デフォルトの名無しさん [sage] 2023/12/16(土) 09:36:31.90 ID:pgUnJUCg 天地無用 http://mevius.5ch.net/test/read.cgi/tech/1635936601/999
1000: デフォルトの名無しさん [sage] 2023/12/16(土) 10:49:04.16 ID:faoSWywL >>998 ほめてつかわす http://mevius.5ch.net/test/read.cgi/tech/1635936601/1000
1001: 1001 [] ID:Thread このスレッドは1000を超えました。 新しいスレッドを立ててください。 life time: 772日 14時間 59分 3秒 http://mevius.5ch.net/test/read.cgi/tech/1635936601/1001
1002: 1002 [] ID:Thread 5ちゃんねるの運営はUPLIFT会員の皆さまに支えられています。 運営にご協力お願いいたします。 ─────────────────── 《UPLIFT会員の主な特典》 ★ 5ちゃんねる専用ブラウザからの広告除去 ★ 5ちゃんねるの過去ログを取得 ★ 書き込み規制の緩和 ─────────────────── 会員登録には個人情報は一切必要ありません。 4 USD/mon. から匿名でご購入いただけます。 ▼ UPLIFT会員登録はこちら ▼ https://uplift.5ch.net/ ▼ UPLIFTログインはこちら ▼ https://uplift.5ch.net/login
http://mevius.5ch.net/test/read.cgi/tech/1635936601/1002
メモ帳
(0/65535文字)
上
下
前
次
1-
新
書
関
写
板
覧
索
設
栞
歴
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.017s