■99475 / ) |
Re[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 という文字列は含まれてないので、マッチしてほしいところです。
|
|