我有一个显示在div内部的字段,问题是如果用户输入的字符串长度超过div中可以放在行外的字符数,它就不会断行,它基本上是延伸到div外面。如何在字符串中的每个单词中插入一个空格,其中包含20个字符或更多的字符,且之间没有空格。例如,现在我正在做这样的事情
string words
Regex.Replace(words, "(.{" + 20 + "})", "$1" + Environment.NewLine);
但是,每隔20个字符插入一个换行符,与没有空格的序列相对。对于正则表达式我真的不太好,所以上面的代码是我找到的。
答案 0 :(得分:2)
答案 1 :(得分:1)
要使用正则表达式解决此问题,您可以使用@"(\S{20})"
作为模式。
\ S将匹配我认为符合您标准的任何非空白字符,因为它只有在连续找到20个或更多非空白字符时才会起作用。
示例用法是:
string words = "It should break after \"t\": abcdefghijklmnopqrstuvwxyz";
string output = Regex.Replace(words, @"(\S{20})", "$1" + Environment.NewLine);
答案 2 :(得分:0)
这段代码对我有用:
string words
string outputwords = words;
int CharsWithoutSpace = 0;
for (int i = 0; i < outputwords.Length; i++)
{
if (outputwords[i] == ' ')
{
CharsWithoutSpace = 0;
}
else
{
CharsWithoutSpace++;
if (CharsWithoutSpace >= 20)
{
outputwords = outputwords.Insert(i + 1, Environment.NewLine);
CharsWithoutSpace = 0;
}
}
}
Console.WriteLine(outputwords);