いくつかの注釈マークが付いたテキストがあります。括弧 '(' と ')' または '[' と ']' は、何が注釈の一部であるかを決定するために使用されます (この文のように、通常のテキストと同様です)。入力内の何かを検索するために正規表現を実行したいのですが...すべての注釈を無視する必要があります。
問題は次のとおりです。
- それらはどこにでも出現する可能性があります (どこにいくつあるかはわかりません)
- 元のテキストで検索正規表現を実行した後にインデックスと長さを知る必要があるため、それらを簡単に削除することはできません (すべての外観を削除するために置換正規表現を実行します)。
- 巨大な入力テキストでできるだけ速くする必要があります
注釈をネストすることはできません。「123 (Hello (World))」などは表示されません。注釈ブラケットが (引用符で囲まれた) 文字列の一部である場合、それらはテキストの一部であり、したがって注釈ではありません。
以下に例を示します。
Input Text: "Hello, my (real) name is John. I worked in England (near London) on a real german restaurant.".
Search Regex: "my.*?real"
Output: "my (real) name is John. I worked in England (near London) on a real" (index=7, length=67)
これを解決する最良の方法は何ですか?