答えて
正規表現は、XMLがの一部である言語のクラスを扱うことができません。しかし、これを行うためのハック方法はもちろんあります:
- あなただけの
idName="something"
のために一致する可能性 - 等号と引用符を含む - とただしidName="somethingelse"
と交換し、このコースのは、上記の正確な文字列がXML要素の本文にテキストとして表示されないことが確実である場合にのみ機能します。この場合、実際には適切なXMLパーサーの周りにつながる方法はありません。
現代の正規表現は通常の言語よりも多くのことを扱うことができますが、扱うことができるのはそれだけです。 XMLを解析するには、文脈自由文法が必要です。
私は理想的な世界では、適切なXMLパーサーを使用することに同意します。
しかし、世界は理想的ではなく、正規表現が必要な場合はこれを処理できます。ここで はperlの/ sedので動作します例ですが、どのLANGに変換するのは簡単でなければなりません:
s/<node idName="employee">(.*?)<\/node>/<node idName="supervisor">$1<\/node>/g
これは、簡単に他の属性を含むように変更することができ、それはこのように気にいらになります:
s/<node (.*?idName=)"employee"(.*?)>(.*?)<\/node>/<node $1"supervisor"$2>$3<\/node>/g
XMLに大きなチャンクが含まれている場合は、メモリが不足していることに注意してください。
私はこれを最善の方法として勧告しているわけではありませんが、これは部分的にfgysinの答えに対する応答です。パーザはあなたにとってはあまりにも複雑であることが判明したため、あるいは別の理由で正規表現を特に必要としているため、パーザを使用することを考えなかったため、正規表現としてタグ付けしているかどうかは分かりません。いずれにせよ、少なくともこれは動作します;) – sillyMunky
- 1. 正規表現は、私は次のようなデータを持っているグループ
- 2. 私は、次のテキスト持っている正規表現表現
- 3. 正規表現は、XMLタグの内容
- 4. 正規表現は、私は、次のファイルを持っている
- 5. 正規表現は、私は次の正規表現持ってカッコ
- 6. 私はこのような正規表現を持って
- 7. 正規表現は、私は次のようになります文字列を持っているPHP
- 8. 正規表現は、私は、この正規表現を持っている
- 9. 正規表現 - 私は、次の文字列を持っているライン
- 10. 正規表現マッチングは、私が検証されている次の正規表現を持っているヌル
- 11. 私は、文字列を持っている正規表現
- 12. 私は、テキストファイルを持っているし、次の内容です正規表現のC#
- 13. 私はこの正規表現を持っている正規表現
- 14. 私はこの正規表現を持っている正規表現
- 15. 正規表現は、私は次のようしているハイフン
- 16. 私はこれらのような行を持っている正規表現
- 17. XMLドキュメントは、私はこのようなXML文書を持っているXML
- 18. 正規表現は、私がURLのように持って
- 19. 正規表現は、私は、フォームのxmlファイルを持っている
- 20. は、私は次のXML文書を持っているのXPath
- 21. 正規表現:私は大きなテキストを持っている
- 22. C#の正規表現は、私は正規表現でtroblesを持って
- 23. 正規表現は、私は、この正規表現を持っている特殊文字
- 24. 正規表現は、私は次の式持っている引用符の
- 25. 私は次のような正規表現を持って、指定した文字列
- 26. は、私は次の値を持つテーブルを持って正規表現
- 27. 次のように私は、XML文書を持っているハイブ
- 28. は、私は、次のようなXMLファイルを持っている
- 29. が、私はこのコードを持っている正規表現
- 30. は、私は以下の文字列を持っている正規表現
正規表現ではなく、このタスクにXMLパーサーを使用する必要があります。 – arnaud576875
@Gzer:http://stackoverflow.com/questions/701166/can-you-provide-some-examples-of-why-it- xml-and-html-a-regeであり、あなたのアプローチを再考するのは難しいです。 –