いくつかのことを想定してみましょう.htmlタグと属性を持つプレーンテキストがあり、それをプレーンテキストのみとして扱いたいと考えています。おそらく、このテキストをサーバー側で取得しているためです。
正規表現以外で、ループを介した文字列操作を好む場合は、以下の単純なループ (ロジック) を使用して、目的を達成できます。
サーバー側で実行する必要があると想定したため、この目的で C# を使用しました。このループを実行するには、その理由で javascript を含む任意の言語を使用できます。
string sourceText = "<div id=\"target\" ><div>ABCD<img style=\"max-height: 25px; max-width: 25px;\" class=\"inlinetag\" " +
"src=\"http://my_images/icon.gif\\" +
"title=\"<ir_inline itemname=bild_1 type=0><cbd>\"> EFG</div>" +
"</div>";
string targetText = sourceText;
bool traceOn = false;
for (int i = 0; i < targetText.Length; i++)
{
if (traceOn)
if (targetText[i] == '"')
traceOn = false;
if (traceOn)
{
if (targetText[i] == '<')
{
targetText = targetText.Remove(i, 1).Insert(i, "<");
}
if (targetText[i] == '>')
{
targetText = targetText.Remove(i, 1).Insert(i, ">");
}
}
if (targetText[i] == '"')
{
if (targetText[i - 1] == '=')
traceOn = true;
}
}
}
したがって、基本的に私が行っているのは、置換のパターンを操作することです。つまり、二重引用符内にあり、前に「=」が付いている < と > のみを置換する必要があります。それは完全に機能します。
これは完璧な解決策ではありませんが、文字列を処理する方法についてのアイデアが得られるはずです。ここにいる誰かが、さらに強力で柔軟なロジックを書くことができます。試してみてください/改善してください。
他の解決策は、あなたの文字列全体をxmlのように扱うことです。つまり、ほとんどすべてのサーバー側言語は、文字列を xml として処理するツールを提供しています。あなたのニーズに合ったものを見つけてください。
私は何かをすることができた
XmlDocument doc = new Xmldocument();
doc.LoadXml(targetString);
and then I could easily retrieve any tag and its attribute.
正規表現に関しては、私はそれらをとても恐れています。それはあなたにアイデアを与えるはずです。