利⽤正则表达式计算含有中⽂的字符串长度1、这是在⽹上的
利⽤正则表达式计算含有中⽂的字符串长度
[QUOTE][code]
using System;
using System.Text.RegularExpressions;
namespace LangZi
{
/** <summary>
/// StringHelper 的摘要说明。
/// </summary>
public class StringHelper
{
public StringHelper()
{
//
// TODO: 在此处添加构造函数逻辑
//
}
GetLength#region GetLength
/** <summary>
/// 返回包含中⽂字符的字符串长度
/// C# 的string.Length中中⽂字只做1位统计,所以要将其转换为2位
/
// </summary>
/// <param >要统计长度的字符串变量</param>
/// <returns>字符串长度</returns>
public static int GetLength(string strSource)
{
Regex regex = new Regex("[/u4e00-/u9fa5]+", RegexOptions.Compiled);
int nLength = strSource.Length;
for(int i=0; i<strSource.Length; i++)
{
js中文正则表达式if (regex.IsMatch(strSource.Substring(i,1)))
{
nLength++;
}
}
return nLength;
}
#endregion
}
}
[/code]
2、这是⾃⼰改写的
public static int GetLength(string strSource)
{
MatchCollection Matches = Regex.Matches(strSource, "[/u4e00-/u9fa5]+", RegexOptions.IgnoreCase); StringBuilder sb = new StringBuilder();
foreach (Match NextMatch in Matches)
{
sb.Append(NextMatch.Value);
}
return strSource.Length + sb.ToString().Length;
}
还有⽤这个正则表达式也可以判断:"[^/x00-/xff]*";
但是当出现中⽂状态下的标点的时候他也会判断成2个字节。
根据你的需要⾃⾏判断需要的表达式
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论