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);
}
}
これは私がこれまでに得たものですが、うまくいきませんでした。
どんな助けでも感謝します。