我是C#的新手,但我要求将字符串剪切为<= 80个字符,并且必须保持单词的完整性(不切割它们)
Examples
Before:我有一个要求将字符串剪切为<= 80个字符并且必须保留字而不剪切它们(长度= 108)
After:我有一个要求将字符串剪切为<= 80个字符并且必须保持(长度= 77)
Before:要求将字符串剪切为<= 80个字符并且必须保留单词而不剪切它们(长度= 99)
After:要求将字符串剪切为<= 80个字符并且必须保留字符(长度= 78)
Before:我有一个要求字符串是<= 80个字符并且必须保留字而不切割它们(长度= 101)
After:我有一个要求字符串<= 80个字符并且必须保留字(长度= 80)
我想使用RegEx,但我对正则表达式一无所知.对于其他人来说,这将是一件麻烦事.如果你能指出我可以用来创建这个表达式的正确文章,我将不胜感激.
这是我想要切成一行的函数:
public String cutTitleto80(String s){
String[] words = Regex.Split(s, "\\s+");
String finalResult = "";
foreach (String word in words)
{
String tmp = finalResult + " " + word;
if (tmp.Length > 80)
{
return finalResult;
}
finalResult = tmp;
}
return finalResult;
}
Run Code Online (Sandbox Code Playgroud)
尝试
^(.{0,80})(?: |$)
Run Code Online (Sandbox Code Playgroud)
这是一个捕获贪婪的匹配,必须后跟一个空格或字符串的结尾.您也可以使用零宽度前瞻断言,如
^.{0,80}(?= |$)
Run Code Online (Sandbox Code Playgroud)
如果您使用像http://regexhero.net/tester/这样的实时测试工具,它非常酷,您实际上可以看到它在您输入超过80个字符时跳回到字边界.
如果没有找到单词边界(空格),这里只会截断第80个字符:
^(.{1,80}(?: |$)|.{80})
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4549 次 |
| 最近记录: |