2

XML ファイルからデータを解析する Dart プログラムに取り組んでいます。残念ながら、ファイルは少し混乱しているので、適切な形にするために大量の正規表現を実行しています。Dart には Javascript と同様に後読み機能がないため、後読みを模倣するメソッドと一緒にキャプチャ括弧を使用しようとしましたが、役に立ちませんでした。Dartはその構文がまったく好きでfunctionはなく、定義されていないことを教えてくれますmyClass

私の XML ファイルは、次の形式の文字列で構成されています。

<items>Chicken Sauces/ Creamy Curried Chicken Salad w/ Wild Rice</items>

終了したら、その文字列を次のようにします。

<items>Chicken Sauces| Creamy Curried Chicken Salad w/ Wild Rice</items>

文字列でこれを呼び出してみました.replaceAll(new RegExp(r'(\w\s*)/(?=\s*\w)'),"$0|$1") が、「識別子が必要です」というエラーが表示されます$0および$1. 現在の先読みに加えて、キャプチャ括弧を適切に使用する方法、または Dart で後読みを模倣する方法について誰かが私にいくつかの指針を提供できれば、私は非常に感謝しています!

4

1 に答える 1

3

正規表現が正しいと仮定すると、String.replaceAllMappedを使用する必要があります。.replaceAllMapped(new RegExp(r'(\w\s*)/(?=\s*\w)'), (match) => "${match[0]}|${match[1]}")

String.splitMapJoinにも興味があるかもしれません

ただし、Compeek は、正規表現はおそらくあなたが望むことをしないだろうとすでに指摘しています。

于 2013-06-15T10:05:55.917 に答える