如何在TextBox上设置超长文本的格式

本文关键字:超长文本 格式 设置 TextBox | 更新日期: 2023-09-27 18:25:22

如何在TextBox中设置文本格式?

我的文本值是:

000100010080020201000100005309970000014820000148200010000012c00001482000014820000148200010000012c00001482000000000000000000000000000000000000000000000000000000000000000000000000001010000000000000000000000000003f

我希望我的输出是这样的:

00010001-0080-02020100010000-53099700-00148200-00-14820001-0000-012C0000-14820000-1482000-0148-20001000-0012C000-0148-20000000-000000-00000000-00000-00000000-00000-000000-00000-00000000-00-00000-000001010-00000-00000000000-00000000-000000-0000003-F

如何在TextBox上设置超长文本的格式

您的格式必须是固定的。它不应该是动态的。

我只是提供了一个逻辑,您可以在正则表达式字符串中附加更多细节。

string mystring = "000100010080"
string regex = @"('w{4})('w{4})('w{4})";
string strValue = Regex.Replace(mystring, regex, @"$1-$2-$3");

输出:

0001-0001-0080

编辑:查看完整的示例

string[] patern = "XXXXXXXX-XXXX-XXXXXXXXXXXXXX-XXXXXXXX-XXXXXXXX-XX-XXXXXXXX-
                   XXXX-XXXXXXXX-XXXXXXXX-XXXXXXX-XXXX-XXXXXXXX-XXXXXXXX-XXXX-
                   XXXXXXXX-XXXXXXXX-XXXX-XX-XXXXXXXXX-XXXXXXXX-XXXX-XXXXXXXX-
                   XXXXXXX-XXXX-XXXXXXXX-XXXXXXXX-XXXXXXXX-XXXX-XXXXXXXX-XX-
                   XXXXX-XXXXXXXXX-XXXXXXXX-XXXXXXXXX-XXXX-XXXXXXXXX-XXXXXXXX-
                   X".Split('-');
string mystring = "00010001008002020100010000530997000014820000148200010000012C0
                   0001482000014820000148200010000012C00001482000000000000000000
                   0000000000000000000000000000000000000000000000000000000000000
                   0000000000000000000000000000001010000000000000000000000000000
                   00000000003F";
string regex = string.Empty;
string match = string.Empty;
for(int i=0; i<patern.Length;i++)
{
    regex += @"('w{" + patern[i].Length + "})";
    match += "$" + (i + 1).ToString() + "-";
}
match = match.Substring(0, match.Length - 1);
txtMyTextBox.Text = Regex.Replace(mystring, regex, match);

假设您有一个固定的插入连字符的模式,并且每次的字符串长度都相同,那么您可以执行以下操作:

int[] indices = new int[] { 2, 5, 11 };
string yourLongString = "blahblahblah";
foreach( var index in indices.Reverse() )
{
    yourLongString = yourLongString.Insert( index - 1, "-" );
}

假设你没有预定义的模式,你可以在任何地方插入连字符,因此如果需要的话,你仍然可以使用上面的相同代码和调整来随机化索引数组。