-3

C#で正規表現を使用する際に問題があるか、少なくともそれが私の問題の解決策になると思います。たとえば、次の文字列があります。

"元の予算画面に移動します。\n1- 元の予算が元の予算の CV であるかどうかを確認します\n- 残りの予算が残りの予算の CV であるかどうかを確認します\n- 新しいフィールドの為替レートを確認します \n- 新しいフィールドの元の予算 FC を確認します \n- チェックします新しいフィールド Remaining Budget FC \n2- Weekly Details の下の名前が変更されたフィールドを確認します:\n- In Flow が In Flow CV であるかどうかを確認します \n- Out Flow が Out Flow CV であるかどうかを確認します \n- 新しいフィールドを確認します In Flow FC\n- チェックします新フィールド「アウトフローFC」

私はそれが必要です:

当初予算画面へ

  • 当初予算が当初予算履歴書かどうかを確認する
    • 残りの予算が残りの予算CVであるかどうかを確認します
    • 新分野チェック 為替レート
    • 新しいフィールドを確認する 元の予算 FC
    • 新しいフィールドの残りの予算 FC を確認します
  • Weekly Details の下の名前が変更されたフィールドを確認します。
    • In Flow が In Flow CV かどうかを確認する
    • Out Flow が Out Flow CV かどうかを確認する
    • 新しいフィールドをチェック In Flow FC
    • 新分野アウトフローFCをチェック

簡単な例でメッセージが表示されなかった場合は、その文字列<li><ul>タグを付けて、Web アプリケーションで使用できるようにします。

これは私のコードの簡単なものです:

  private string regexmethod(string field)
    {
        string strRegex = @"^(.+?)\\n[\d|\w]-\W+";
        Regex CatchBetweenTheFirstDot = new Regex(@"\\n[\d|\w]-\W+(.+?)\\n[\d|\w]-\W+");
        Regex CatchTheNumbers = new Regex(@"\\n[\d|\w]-\W+");
        Regex CatchFirstLineBeforDot = new Regex(strRegex);
        Regex CatchInsideFirstRegex = new Regex(@"\\n-\W+");
        var matchFirst = CatchFirstLineBeforDot.Matches(field);
        var matchBetween = CatchBetweenTheFirstDot.Matches(field);
        StringBuilder str = new StringBuilder();
        if (matchFirst.Count > 0)
            str.Append(matchFirst[0].Value);
        foreach (Match matchItem in matchBetween)
        {
            str.Append("<ul><li>");
            string newvalue = matchItem.Value;
            var matchTheInside = CatchInsideFirstRegex.Matches(newvalue);
            for (int i = 0; i < matchTheInside.Count; i++)
            {
                if (i == 0)
                {
                    newvalue.Replace(matchTheInside[i].Value, @"<ul><li>");
                }
                else
                {
                    newvalue.Replace(matchTheInside[i].Value, @"<\li><li>");
                }
            }
            if (newvalue.Length > 0)
            {
                newvalue += "</li></ul>";
                str.Append(newvalue);
            }

        }

これは私がこれまでに得たものですが、うまくいきませんでした。

どんな助けでも感謝します。

4

1 に答える 1