• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
红色石头
热情的血液+石头的冰冷
博客园    首页    新随笔    联系   管理    订阅  订阅
利用.net正则表达式化繁为简的一个实例

需求:按照姓名或拼音简码在数据库表中进行模糊查询,如果输入是中文,查询Name字段,如果是字母查询PyJm字段

1.不用正则表达式的方式
int l = strName.Length;
char[] cha = strName.ToCharArray();
for(int i =0 ;i<strName.Length;i++)
{
   if(Convert.ToInt32(cha[i])>255)
      l+=2;
   if(Char.IsLetter(strName,i))
      l-=1;
}
if(l==0)
   sql+=" and Xf_ZfJbXx.PyJm like '%"+strName+"%'";
else
   sql+=" and Xf_ZfJbXx.Name like '%"+strName+"%'";

2.用正则表达式的方式
//增加正则表达式的命名空间
using System.Text.RegularExpressions;

   /// <summary>
  /// 判断是否为拼音
  /// </summary>
  /// <param name="strName"></param>
  /// <returns></returns>
  public static bool IsPy(string strName)
  {
   return Regex.IsMatch(strName,"^[A-Za-z]|[0-9]$");
  }

  /// <summary>
  /// 选人界面用SQL(当前表)
  /// </summary>
  /// <param name="strName"></param>
  /// <returns></returns>
  public static string SearchPeopleSql(string strName)
  {
   string sql = " and Name like '%"+strName+"%' ";
   if(IsPy(strName))
   {
       sql = " and PyJm like '%"+PyJm+"%' ";
   }
   return sql;
  }

posted on 2006-09-27 14:09  红色石头  阅读(316)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3