0

MPXJ を使用して mpp ファイルを読み込んでいます。以下のようなリソース割り当て文字列があります。

string st = [[Resource Assignment task=Sign contract and update data resource=
X.C. Information Management start=Thu Jun 09 08:00:00 ICT 2014 finish=Thu Jun 05 17:
00:00 ICT 2014 duration=32.0h workContour=null]]

上記の文字列からリソース名を取得したい ( XC Information Management )。
現在、私はコードを使用しています:

st.Split('=')[2].Replace(" start", ""); // return X.C. Information Management<br/>

正規表現を使用すると思いますが、それを実装するアイデアはありません。
できれば助けてください。

ありがとう

4

3 に答える 3

1

次のような正規表現を使用できます。

resource=(.*)\sstart=

情報は、一致した文字列ではなくグループにあります。

Regex.Match(input, "resource=(.*)\sstart=").Groups[1].Value
于 2014-06-10T16:35:32.293 に答える
1

必要な情報が太字タグ ( <b>& </b>) で囲まれており、文字列に他の太字タグがない場合、この正規表現は機能するはずです

(?<=<b>).*(?=<\/b>)

こちらをご覧ください

C# では、次のようなことができます。

Regex regex = new Regex(@"(?<=<b>).*(?=<\/b>)");
string testString = @"*string st = [[Resource Assignment task=Sign contract and update data resource=<b>X.C. Information Management</b> start=Thu Jun 09 08:00:00 ICT 2014 finish=Thu Jun 05 17:00:00 ICT 2014 duration=32.0h workContour=null]]*";
string text = regex.Match(testString).Value;

そしてtext等しくなりますX.C. Information Management

編集:わかりました-OPは<b>タグを削除しましたが、原則はほとんど同じです。<b>タグを、探している文字列の前後にあることがわかっている適切なマーカーに置き換えるだけです。例えば:

(?<=resource=).*(?=start)
于 2014-06-10T16:26:12.203 に答える