RegEx を使用して長い文字列を検索しようとしていますが、式が思い浮かびません。特定の値を含むタグで始まり、別の値を含む別のタグで終わる一連のタグを HTML で検索しようとしています。これを試みるために現在使用しているコードは次のとおりです。
matcher = new RegExp(".*(<[^>]+" + startText + "((?!" + endText + ").)*" + endText + ")", 'g');
data.replace(matcher, "$1");
真ん中あたりの奇妙さ ( ) は、私の問題を説明しているように見える((\\?\\!endText).)*
別のスレッドから借用したものです。私が直面している問題は、式が開始タグと一致するが、終了タグが見つからず、代わりに残りのデータが含まれていることです。また、途中で見回すと、表現が大幅に遅くなりました。これを機能させる方法について何か提案はありますか?
編集: RegEx で HTML を解析するのが最善の選択肢ではないことは理解しています (汚い気分になります)。その場で作成しているため、解析するマークアップがどのように見えるかを正確に言うのは困難です。私にできる最善のことは、さまざまな日付のさまざまなアイテムについて収集された大きなデータ テーブルを見ているということです。これらの範囲は両方とも異なる可能性があり、単一の行から特定の範囲の日付を選択しようとしています。startText
とのおおよその値endText
は\\@\\@ASSET_ID\\@\\@_<YYYY_MM_DD>
. アイデアは、このセル範囲に対応するコードを見つけることです。(この編集により、これがさらに混乱する可能性がありますが、アプリケーション全体を説明せずに、実際にどれだけ多くの情報を提供できるかわかりません)。
編集: まあ、これはばかげた質問でした。.*
どうやら、最後の括弧の後に追加するのを忘れていました。これにこんなに長い時間を費やしたなんて信じられない!助けようとした人に感謝します!