【发布时间】:2015-05-12 00:06:07
【问题描述】:
我有以下文字:
测试一些文本。现在这里有一些新的 realylonglonglong 文本
我需要把它剪成 50 个字符,但不要剪掉单词。所以,期望的结果是:
测试一些文本。现在这里有一些新的......
我只寻找使用正则表达式替换的解决方案。以下正则表达式:
^.{0,50}(?= |$)
匹配:
测试一些文本。现在这里有一些新的
但我未能将其转换为用于替换功能。
在我的真实案例中,我有一个名为 [dbo].[RegexReplace] 的 SQL CLR 函数,我这样称呼它:
SELECT [dbo].[RegexReplace](@TEST, '^.{0,50}(?= |$)', '...')
它的C#定义是:
public static string Replace(SqlString sqlInput, SqlString sqlPattern, SqlString sqlReplacement)
{
string input = (sqlInput.IsNull) ? string.Empty : sqlInput.Value;
string pattern = (sqlPattern.IsNull) ? string.Empty : sqlPattern.Value;
string replacement = (sqlReplacement.IsNull) ? string.Empty : sqlReplacement.Value;
return Regex.Replace(input, pattern, replacement);
}
这就是我想用正则表达式替换功能的原因。
【问题讨论】:
标签: c# regex tsql sql-server-2012 clr