次のステートメントに一致する必要があります。
Hi there John
Hi there John Doe (jdo)
これらを一致させずに:
Hi there John Doe is here
Hi there John is here
だから私はこの正規表現が機能するだろうと考えました:
^Hi there (.*)(?! is here)$
しかし、そうではありません-そしてその理由はわかりません-これはキャプチャグループ(。*)が原因である可能性があると思いますので、*演算子を怠惰にすることで問題が解決すると思いました...しかし違います。この正規表現も機能しません:
^Hi there (.*?)(?! is here)$
誰かが私を解決策の方向に向けることができますか?
解決
(のように)最後にない 文を取得するには、 (author @Thorbear)を使用する必要があります。is here
Hi there John Doe (the second)
^Hi there (.*$)(?<! is here)
また、途中にデータが含まれている文の場合(たとえばHi there John Doe (the second) is here
、John Doe(2番目)が目的のデータである場合)、単純なグループ化で十分です。
^Hi there (.*?) is here$
。
╔══════════════════════════════════════════╗
║▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒║
║▒▒▒Everyone, thank you for your replies▒▒▒║
║▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒║
╚══════════════════════════════════════════╝