这个问题与以下内容无关:
那个问题是关于源代码的,而这个问题是关于处理长输出的。如果有人输入:
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
作为评论,它会破坏包含容器使整个页面变得很宽。是否有任何聪明的正则表达式可以定义20个字符的最大单词长度,然后强制使用空格字符?
感谢任何帮助!
在这种简单的情况下,可能没有必要涉及正则表达式。可以使用以下扩展方法:
public static string Abbreviate(this string text, int length) {
if (text.Length <= length) {
return text;
}
char[] delimiters = new char[] { ' ', '.', ',', ':', ';' };
int index = text.LastIndexOfAny(delimiters, length - 3);
if (index > (length / 2)) {
return text.Substring(0, index) + "...";
}
else {
return text.Substring(0, length - 3) + "...";
}
}
string outputStr = Regex.Replace(inputStr, @"([\S]{20}(?=\S+))", "$1\n");
是的,你可以使用这个正则表达式。
string pattern = @"^([\w]{1,20})$";
string strRegex = @"^([\w]{1,20})$";
string strTargetString = @"asdfasfasfasdffffff";
if(Regex.IsMatch(strTargetString, strRegex))
{
//do something
}
^(.{1,20})$
因为\w只匹配字母数字和下划线符号