C# と VB.NET の質問掲示板

わんくま同盟

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

■99475 / 2階層)  正規表現で文字列の否定
□投稿者/ 匿名希望マン (2回)-(2022/04/15(Fri) 14:01:38)
774RR さん、furu さん、返信ありがとうございました。
自分でも何がしたいのか分からなくなってきました...。
ことの発端は、
https://bynatures.hatenadiary.jp/entry/3317/
を読んで、「正規表現は否定を上手く表せない?」って書いてあったので、
マジかよと思い、とりあえずこのブログに書いてあったことを真似てみただけです。
もちょっと自分でも考えてみます。


No99470 (774RR さん) に返信
> 日本語というか設問があいまいなのでどう答えてよいか
>
>>abを含まない文字列
> a および b を含まない
> a または b を含まない
> ab という文字列を含まない
> どれだろう?
あいまいですみません。
「ab という文字列を含まない」ですかね。

> 否定先読みを使いたくない理由は?
元のネタのブログにxyzの否定まであったので、この方法で増やしていくと、どのくらい複雑になるのか気になったからです。
「業務上、必要に迫られたから」とかじゃなくてすみません...。単なる好奇心です。


No99473 (furu さん) に返信
> ■No99465 (匿名希望マン さん) に返信
>>しかし、実際に動かしてみたところ、期待通りには動きませんでした。
> 文字列全体と比較していないから?
>
> Regex(@"[^a]*|[^a]*a[^b]*")
>   ↓↓↓
> Regex(@"^[^a]*$|^[^a]*a[^b]*$")
なるほど。やってみたらいい線いってました。
上の正規表現だと、文字列が2文字の場合はab以外のすべてにマッチしますが、例えば acb や adb などがマッチしないようです。
acb や adb には ab という文字列は含まれてないので、マッチしてほしいところです。
編集キー/

前の記事(元になった記事) 次の記事(この記事の返信)
←Re[1]: 正規表現で文字列の否定 /furu →Re[3]: 正規表現で文字列の否定 /shu
 
上記関連ツリー

正規表現で文字列の否定 / 匿名希望マン (22/04/14(Thu) 20:20) #99465
Re[1]: 正規表現で文字列の否定 / 774RR (22/04/15(Fri) 09:43) #99470
Re[1]: 正規表現で文字列の否定 / furu (22/04/15(Fri) 10:48) #99473
  └ 正規表現で文字列の否定 / 匿名希望マン (22/04/15(Fri) 14:01) #99475 ←Now
    └ Re[3]: 正規表現で文字列の否定 / shu (22/04/15(Fri) 14:55) #99477
      └ Re[4]: 正規表現で文字列の否定 / 匿名希望マン (22/04/15(Fri) 20:27) #99479
        ├ Re[5]: 正規表現で文字列の否定 / 匿名希望マン (22/04/16(Sat) 18:01) #99488
        │└ Re[6]: 正規表現で文字列の否定 / 伝説のカレー (22/04/16(Sat) 18:12) #99489
        │  └ Re[7]: 正規表現で文字列の否定 / 匿名希望マン (22/04/16(Sat) 20:35) #99491
        └ Re[5]: 正規表現で文字列の否定 / 伝説のカレー (22/04/16(Sat) 17:10) #99487
          └ Re[6]: 正規表現で文字列の否定 / 匿名希望マン (22/04/17(Sun) 12:17) #99493 解決済み
            └ Re[7]: 正規表現で文字列の否定 / shu (22/04/18(Mon) 17:29) #99499
              └ Re[8]: 正規表現で文字列の否定 / 匿名希望マン (22/04/19(Tue) 22:08) #99502
                └ Re[9]: 正規表現で文字列の否定 / shu (22/04/22(Fri) 01:19) #99529
                  └ Re[10]: 正規表現で文字列の否定 / 匿名希望マン (22/05/29(Sun) 14:48) #99776 解決済み
                    └ Re[11]: 正規表現で文字列の否定 / 匿名希望マン (22/05/29(Sun) 14:56) #99777 解決済み
                      └ Re[12]: 正規表現で文字列の否定 / 匿名希望マン (22/06/12(Sun) 23:04) #99841 解決済み

上記ツリーを一括表示 / 上記ツリーをトピック表示
 
上記の記事へ返信