[過去ログ] Regular Expression(正規表現) Part16 (1002レス)
上下前次1-新
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
908: 2023/10/29(日)19:20 ID:dO2GnsiA(1) AAS
正解はスラッシュでした
909: 2023/10/29(日)19:49 ID:zDgIETfO(4/4) AAS
(/w\)
910(1): 2023/10/30(月)20:06 ID:wzEyUd/K(1) AAS
ASCIIコード表について調べてみたら特定の1ビットを0にするか1にするかで
大文字小文字が変換出来るようにするための順番らしい
並びの便利さより処理効率が優先されてた、先人の知恵に敬礼
911: 2023/10/30(月)20:59 ID:dhg2pdyL(1) AAS
どうせ範囲チェックはしないといけないんだから
それだったら引き算や足し算で大文字小文字変換できちゃう
まあ昔はbit演算より算術演算にステップ数が掛かってたからその当時は良かったんだろうけど
912: 2023/10/31(火)18:36 ID:X00tNW2d(1) AAS
今時のマシンのことしか考えなくていいなら足し引きで良さそうだけど
遅いマシンのことまで考えるならビット演算一択になるんだろうな
アルファベットが32文字だったら隙間出来なかったのに
SHIFT_JISのダメ文字問題も最初からEUC-JPにしとけば苦労しなかったのにな
913: 2023/10/31(火)21:57 ID:27STA2Pg(1) AAS
正規表現は改行の扱いが難しいなあ
やらかすときはたいてい改行の処理でミスる
914: 2023/11/01(水)09:19 ID:DBguvWIQ(1/3) AAS
. が改行にマッチしないのを失念してってのは何度もやってる
915: 2023/11/01(水)11:38 ID:ikHnu6pN(1/3) AAS
●Regular Expressionの使用環境
サクラエディタ(bregoing.dll Ver4.20 with Onigmo 6.2.0)
●検索か置換か?
検索
●説明
キムラタクヤの略称を検索するために
(キムラ)と(タクヤ)からそれぞれ1字以上使って並べた単語にマッチする正規表現を作りました
^(キ|ム|ラ|キム|ムラ|キラ|キムラ)(タ|ク|ヤ|タク|クヤ|タヤ|タクヤ)$
文字数や単語数が増えたときひどいのでもっと上手な書き方を教えてください
●マッチする文字列
省7
916(2): 2023/11/01(水)11:38 ID:ikHnu6pN(2/3) AAS
●Regular Expressionの使用環境
サクラエディタ(bregoing.dll Ver4.20 with Onigmo 6.2.0)
●検索か置換か?
検索
●説明
キムラタクヤの略称を検索するために
(キムラ)と(タクヤ)からそれぞれ1字以上使って並べた単語にマッチする正規表現を作りました
^(キ|ム|ラ|キム|ムラ|キラ|キムラ)(タ|ク|ヤ|タク|クヤ|タヤ|タクヤ)$
文字数や単語数が増えたときひどいのでもっと上手な書き方を教えてください
●マッチする文字列
省7
917(1): 2023/11/01(水)12:08 ID:oh2mJ3WA(1) AAS
^(?:キ?ム?ラ?)(?<=\S)(?=\S)(?:タ?ク?ヤ?)$
918: 2023/11/01(水)14:40 ID:DBguvWIQ(2/3) AAS
同じ人かは分からないけど超優秀な回答者がここ1,2年前から来てくれてる
多くの閲覧者にとっても勉強になるからありたがいことです
919: 2023/11/01(水)16:00 ID:G1jsC9Xy(1) AAS
じつはその人AIだよ
920(1): 2023/11/01(水)17:01 ID:ikHnu6pN(3/3) AAS
>>917
ありがとうございます動きました
3語以上の場合はこれでできてますか?
^(?:キ?ム?)(?<=\S)(?=\S{2})((?:ラ?タ?)(?<=\S{2})(?=\S)(?:ク?ヤ?))$
921: 2023/11/01(水)17:03 ID:DBguvWIQ(3/3) AAS
AIと言われても違和感が無いから困る、人間だったほうがいい
サクラエディタを少し触ってみたが
\r を \c-
\n を \c*
に書き換えてもマッチした
このことは恐らくbregoing.dllの作者氏でも知らないのでは
922: 2023/11/01(水)18:26 ID:upaRAmPk(1) AAS
>>920
キムクヤにマッチするから駄目だね
>>916のように自分で組み合わせを展開する以外の方法はわからないね
923: 2023/11/01(水)21:03 ID:bvA/YDb8(1) AAS
最後で語数チェックすれば?
(?<=\S{3})$
924(1): 2023/11/01(水)22:35 ID:8ROMQdip(1) AAS
^(キ?ム?ラ?)(タ?ク?ヤ?)$(?!\1|\2)
^(キ?ム?)(ラ?タ?)(ク?ヤ?)$(?!\1)(?!\2)(?!\3)
^(キ?ム?)(?!.*+$\k<-1>)(ラ?タ?)(?!.*+$\k<-1>)(ク?ヤ?)(?!.*+$\k<-1>)$
^(?=(.++))(?:キ?ム?)(?!\k<-1>)(?=(.++))(?:ラ?タ?)(?!\k<-1>)(?=(.++))(?:ク?ヤ?)(?!\k<-1>)$
925: 2023/11/02(木)08:03 ID:ztJD977Y(1) AAS
文字数も単語数も拡張性もばっちりです
ご指導ありがとうございました
926: 2023/11/02(木)09:18 ID:/CeYlFrx(1/2) AAS
> $(?!\1|\2)
これもすごい、こんなの思い付かない
私なら(?(1))を使おうとしてグチャる
こういうのを作れる人になりたかった、羨ましい限りだ
927: 2023/11/02(木)09:22 ID:kxWwWLf8(1) AAS
>>910
アルファベットが32文字だったら誰も困らなかったはず
928: 2023/11/02(木)11:56 ID:YMFW9tw8(1) AAS
各文字列から最低2文字以上含まれてる略称にだけマッチすることもできる?
929: 2023/11/02(木)13:01 ID:eLjTHeK1(1) AAS
^(?=.(.++))(?:キ?ム?ラ?)(?!.?\k<-1>)(?=.(.++))(?:タ?ク?ヤ?)(?!.?\k<-1>)$
^(?=.{1}(.++))(?:キ?ム?ラ?)(?!.{0,1}\k<-1>)(?=.{1}(.++))(?:タ?ク?ヤ?)(?!.{0,1}\k<-1>)$
930: 2023/11/02(木)19:36 ID:/CeYlFrx(2/2) AAS
ラノベ 「1日でキムタクの一般項が出来てるからパソコンそっと閉じて見なかったことにする」
931: 2023/11/03(金)08:34 ID:cY7DSC5H(1/2) AAS
^[キムラ]{1,2}[タクヤ]{1,2}$
932: 2023/11/03(金)09:08 ID:PqFUo1lf(1/5) AAS
それはラキクタにマッチするからボツ(==.)
933: 2023/11/03(金)10:43 ID:cY7DSC5H(2/2) AAS
ラキクタにマッチしたらダメって条件にはないんだけど‥
934: 2023/11/03(金)11:44 ID:PqFUo1lf(2/5) AAS
確かに言葉ではそんな条件は書いてないね、曖昧3cm
935: 2023/11/03(金)11:50 ID:zxzLPr4V(1) AAS
^?キ?ム?ラ?タ?クヤ?$が略称条件な流れ?
936: 2023/11/03(金)12:14 ID:sAJhyk0D(1) AAS
^(?=A)(?=B).*$
937(1): 2023/11/03(金)12:18 ID:PqFUo1lf(3/5) AAS
>>916を読めば文字順通りと受け取るのが妥当だね
ちなみにもしこのコマンドがあったら簡単に書けた
外部リンク[html]:www.proxomitron.info
^(キ?ム?ラ?)$TST(\1=..+)(タ?ク?ヤ?)$TST(\2=..+)$
perlなら(??{code})でこのコマンドと同じことが出来るけどサクラエディタのdllでは無理
dllに$SETと$TSTが実装されたら正規表現の幅がめっちゃ広がるけど無理そう
// \1 に日本語表記での色が代入される
blue$SET(1=青)|yellow$SET(1=黄)|red$SET(1=赤)
上下前次1-新書関写板覧索設栞歴
あと 65 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.027s