HTML/XMLを解析または操作するために正規表現を使用することは悪い考えであり、通常は行いません。しかし、代替案の欠如のためにそれを考慮する。RegexまたはXmlParserのいずれかを使用してタグに含まれていないテキストを置き換えます。
C#を使用して、タグの一部ではない文字列(理想的には特定のIDを持つスパンタグ)内のテキストを置き換える必要があります。
例えば、私は正規表現を使用してみました代替テキスト(私の場合は、別のスパン)
ABC at start of line or ABC here must be replaced but, <span id="__publishingReusableFragment" >ABC inside span must not be replaced with anything. Another ABC here </span> this ABC must also be replaced
とスパンの内側にはない以下のテキストでABCのすべてinstacesを交換したいとしましょうどちらも先を見て、主張の背後を見る。
string regexPattern = "(?<!id=\"__publishingReusableFragment\").*?" + stringToMatch + ".*?(?!span)";
の行に沿ったさまざまな組み合わせですが、それをあきらめました。
私はそれをXElementに読み込み、そこからライターを作成し、ノード内にテキストを入れようとしました。しかし、それを理解することはできませんでした。
XElement xel = XElement.Parse("<payload>" + inputString + @"</payload>");
XmlWriter requiredWriter = xel.CreateWriter();
私は何らかの形でノードの一部ではない文字列を取得して置き換えることを希望しています。
基本的に私はこの問題を解決するための提案/解決策に開放しています。
ご協力いただきありがとうございます。まだ
いいですね。しかし、スパンタグにいくつかの余分な属性があるのはどうでしょうか? ...正規表現のスパン部分をしかし、今度は、spanタグの最後の後に一致しません。...このABC ... – Chaitanya
あなたは始めています正規表現を使ってHTMLを解析するのは良い考えではありません。属性に '>'が含まれていない場合は、 '<\s*span[^>] * id =" "__ publishingReusableFragment" "[^>] *>'を使用して、最高の状態を期待できます。 –
うん、それは、ありがとう、ありがとう。うん、それは私がLinqToXMLやLinqToHtmlのlibを使って歩くことがアイデアかもしれないと思った理由です。これは、手作業による後処理を減らすために、あるデータを手掛かりにする必要がある、インポートツールから離れているだけです。 – Chaitanya