0

次のようないくつかのXPath式があると考えてください。

loan:_applicant/base:_entity/person:_locations/base:SmartRefOfLocationeJDvviUx[base:_entity/contact:_category/base:_underlyingValue='Personal' and base:_entity/contact:_confirmedByResident/common:_isConfirmed/base:_underlyingValue='true' and base:_entity/base:_process/base:_entity/base:_id/base:_underlyingValue = /loan:Application/base:_process/base:_entity/base:_id/base:_underlyingValue]/base:_entity/base:_id/base:_underlyingValue

/base:_entity次のように、パーツをスプリッターとして使用して、これらの式を分割しようとしています。

string[] stringSeparators = new string[] { "/base:_entity" };
string[] pathTokens = xPath.Split(stringSeparators, StringSplitOptions.None);

しかし、と 文字/base:_entityの間にある場合は分割を防ぐ必要があります。[]

上で書いたサンプル式の出力として、次の文字列配列を生成する必要があります。

"loan:_applicant"
"/person:_locations/base:SmartRefOfLocationeJDvviUx
[base:_entity/contact:_category/base:_underlyingValue='Personal' and base:_entity/contact:_confirmedByResident/common:_isConfirmed/base:_underlyingValue='true' and base:_entity/base:_process/base:_entity/base:_id/base:_underlyingValue =  /loan:Application/base:_process/base:_entity/base:_id/base:_underlyingValue]"
"/base:_id/base:_underlyingValue"

何か提案はありますか?

4

1 に答える 1

1

のようなかわいい正規表現を使用して(?<=^.*\][^\[]*|^[^\[\]]*)/base:_entityから、正規表現のメソッドSplitを使用します。ポジティブルックビハインドを使用して、左側の最初の角かっこが閉じかっこ']'であるか、かっこがまったくないかを確認します。

于 2012-11-19T14:37:03.870 に答える