2011-09-14 3 views
2

まず最初に、正規表現を使ってXMLを修正しようとするべきではないことを知っていますが、これは私がとにかくパーサーを使わない特別なケースです。RegexはXMLタグのみを置き換えます(コンテンツではありません)

<nicetag_A-B>Teststring X-Y</nicetag_A-B> 

このように見えるように:私はこれが欲しい

要するに

<nicetag_>Teststring X-Y</nicetag_> 

を、私は[任意の文字]削除する - [任意の文字を]だけタグから、内部の実際のコンテンツではありません。

これは、これまでのところ、私の正規表現です:

Regex.Replace(inputString, @"(<.*?[a-zA-Z])\-([a-zA-Z].*?>)", "$1$2"); 

これに伴う問題は、タグはABなしで名付けられる場合にのみ、上記の例のために働くということで、内側のコンテンツ(XY)が置き換えられます代わりに。

アイデア?

答えて

1

あなたの例は機能していません。タグのハイフンのみを置き換えています。

は、それがonline here on Regexr

+0

完璧!そしてはい、Regexrはお尻を蹴る:) – Andreas

0

.*ではなく、(すべて一致するものは>と空白)を試して、まだタグ名になっていることを確認できます。

0

あなただけ>[a-zA-Z]-[a-zA-Z]>を置き換えることはできませんを参照してくださいここに

(<[^>]*)[a-zA-Z]\-[a-zA-Z]([^>]*) 

これを試してみて、$1$2

と交換してください?