正規表現 「否定先読み(Negative Lookahead)」 | 60歳を迎えて、思うこと。

60歳を迎えて、思うこと。

いつの間にか、「60」という年月が経ちました。
残り少ないか多いか?わかりませんが。
じじぃ~の「ひとりごと」を細々と続けられれば。。。

正規表現 「否定先読み(Negative Lookahead)」

ばうばう わんわん

ファイル整理の

振り分け作業

かっと あんど とらい (???)

日々である

そんな状態で

ちょっと 一工夫したくて

【Gemini】様に ご相談・・・

にゃあにゃあ ごろごろ にゃぁ~~~

# ==== 【Gemini】様

正規表現パターンのご相談ですね!
結論から言うと、「『謎』から始まって、その直後に『カブトカニ』が続かない
もの」という条件であれば、Pythonの正規表現でバッチリ実現できます。

お探しの表記(`NOT` のようなもの)は、

正規表現では

「否定先読み(Negative Lookahead)」 という

テクニックを使います。

書き方は `
(?!文字列)` です。これを組み合わせると、以下のようなパターンに
なります。

 解決する正規表現パターン

```python
r'^謎(?!のカブトカニ)'

```
※ご提示のテキストが「カフトカニ」になっていたので、もし正確にマッチさせ
たい場合は `r'^謎(?!のカフトカニ)'` にしてください。



 どういう仕組み?

* `^` : 文字列の先頭からスタート
* `謎` : 最初に「謎」という文字がある
* `(?!のカブトカニ)` :
【ここがポイント】 

「謎」のすぐ後ろの文字を見た
ときに、「のカブトカニ」という文字列が続いていなければ合格!(続く場合は
不合格・スルー)

 判定結果のイメージ

* `謎の遺跡.pdf`
 先頭が「謎」で、後ろが「の遺跡」(「のカブトカニ」ではない)ので 【ヒッ
 ト!】
* `謎のカブトカニ大量死...`
 先頭が「謎」だけど、後ろが「のカブトカニ」なので 【スルー!】
* `怪獣の謎.pdf`
 そもそも「謎」から始まっていないので 【スルー!】
# ==============================
べんり で ある

じじぃ~