1

C#、Windows フォームでは、これをどのように達成しますか?


07:55 Header Text:  This is the data<br/>07:55 Header Text:  This is the data<br/>07:55 Header Text:  This is the data<br/>

ご覧のとおり、かなり長い戻り文字列がありますが、データを次のようにフォーマットできるようにしたいと考えています。


<b><font color="Red">07:55 Header Text</font></b>:  This is the data<br/><b><font color="Red">07:55 Header Text</font></b>:  This is the data<br/><b><font color="Red">07:55 Header Text</font></b>:  This is the data<br/>

ご覧のとおり、私は基本的<b><font color="Red">に、ヘッダー テキストと時間の前に追加</font></b>し、: セクションの直前に追加したいと考えています。

そうそう笑私はちょっと迷っています。

私は.Replace()Regexパターンをいじりましたが、あまり成功していません。私は本当にテキストを置き換えたくありません。特定の位置に追加/前に追加するだけです。

これを行う簡単な方法はありますか?

注: [] タグは実際には <> タグですが、ここでは使用できません (笑)

4

4 に答える 4

2

RegEx を使用しているからといって、テキストを置き換える必要があるわけではありません。

次の正規表現:

(\d+:\d+.*?:)(\s.*?\[br/\])

2 つの「キャプチャ グループ」があります。次に、テキスト文字列全体を次のように置き換えることができます。

[b][font color="Red"]\1[/font][/b]\2

次の出力が得られるはずです。

[b][font color="Red"]07:55 Header Text:[/font][/b] This is the data[br/]
[b][font color="Red"]07:55 Header Text:[/font][/b] This is the data[br/]
[b][font color="Red"]07:55 Header Text:[/font][/b] This is the data[br/]

編集:上記を示すいくつかの C# コードを次に示します。

var fixMe = @"07:55 Header Text: This is the data[br/]07:55 Header Text: This is the data[br/]07:55 Header Text: This is the data[br/]";
var regex = new Regex(@"(\d+:\d+.*?:)(\s.*?\[br/\])");
var matches = regex.Matches(fixMe);

var prepend = @"[b][font color=""Red""]";
var append = @"[/font][/b]";

string outputString = "";
foreach (Match match in matches)
{
    outputString += prepend + match.Groups[1] + append + match.Groups[2] + Environment.NewLine;
}

Console.Out.WriteLine(outputString);
于 2011-03-24T04:56:19.537 に答える
0

pスタイルを作成し、各行をまたはdivタグでラップして各行の css クラスを設定することを検討しましたか?

メンテナンスと構築が容易になります。

于 2011-03-24T05:03:22.673 に答える
0

最も簡単な方法は、おそらくstring.Replace()andを使用することstring.Split()です。入力文字列がinput(テストされていない)であるとします:

var output = string.Join("<br/>", in
    .Split("<br/>)
    .Select(l => "<b><font color=\"Red\">" + l.Replace(": ", "</font></b>: "))
    .ToList()
    ) + "<br/>";
于 2011-03-24T04:57:46.680 に答える
0

これ.Insert()をチェックしてみましたか?

于 2011-03-24T04:53:56.897 に答える