0
フィールドにHTMLを格納したSQLテーブルがあります。このHTMLの一部を置き換える必要があります。私はこの結果を得る一致する文字列の最後の文字を取得
SELECT [Id_Of_Content],
PATINDEX('<!DOCTYPE%%<!-- MAIN CONTENT -->%<td%>', [Content]) AS StartIndex,
PATINDEX('%<!-- MAIN CONTENT -->%<td%>', [Content]) AS EndIndex
FROM MyTable
:
ContentId | StartIndex | EndIndex
1 1 5825
2 1 5819
は今、開始インデックスをとして、正しい今
<!DOCTYPE html
...... //more html
<!-- MAIN CONTENT -->
<table>
<tr>
<td ...... />
、このクエリを使用した:値の例は、この可能性があり<!DOCTYPE
要素は常に自分のHTMLの一番上にあります。しかし、最後のインデックスは、私が望むものではありません。検索される文字列の最初の文字のインデックスです。この場合、<
です。 <td%>
に>
文字のインデックスが必要です。どのように私はこれを得ることができますか?
あなたは、その文字列の後に続くものを検索し、そのインデックスを使用する必要があります。ここの問題は、あなたが本当にこのようなことをするつもりではないツールを使用しているということです。これをSQLを使用して簡単に行うことができない理由は、SQLが間違ったツールであるためです。この種の処理は、正規表現を完全にサポートするなどの優れたツールを備えた適切なプログラミング言語で行う必要があります。 –
フィードバックありがとうございます。これは一度のスクリプトのため、C#で何かを書く考えは私には起こりませんでした。私は、私の希望する文字の後に来るものの開始インデックスを見つけることを試みるつもりです。 – ohyeah