C#后台利用正则表达式查找匹配字符
/// <summary>
/// 发送短信 系统固化短信
/// </summary>
/// <param name="memberId"></param>
/// <param name="mobile"></param>
/// <param name="subType"></param>
/// <param name="groupId"></param>
/// <returns></returns>
public static Result SendMsgBySysInit(string memberId, string mobile, string subType, int groupId)
{
using (CRMEntities db = new CRMEntities())
{
var qTemp = db.TM_Act_CommunicationTemplet.Where(o => o.IsSysInit == true && o.Type == "SMS" && o.SubType == subType && o.DataGroupID == groupId).FirstOrDefault();
string sendMsg = "";
int templateId = 0;
if (qTemp != null)
{
sendMsg = qTemp.BasicContent;
templateId = qTemp.TempletID;
}
Regex reg = new Regex(@"{[a-zA-Z \u4e00-\u9fa5]+}");
MatchCollection mc = reg.Matches(sendMsg);
List<Dictionary<string, string>> lstDict = new List<Dictionary<string, string>>();
for (int i = 0; i < mc.Count; i++)
{
string strRgx = mc[i].Value.ToString().TrimStart('{').TrimEnd('}');
Dictionary<string, string> dict = new Dictionary<string, string>();
var qAlias = db.TD_SYS_FieldAlias.Where(o => o.FieldDesc == strRgx).FirstOrDefault();
if (qAlias != null)
{
dict["name"] = qAlias.FieldAlias;
if (qAlias.ControlType == "date")
{
DateTime qSqlRet = db.Database.SqlQuery<DateTime>(string.Format("select {2} from {0} where memberId='{1}'", qAlias.TableName, memberId, qAlias.FieldName)).FirstOrDefault();
dict["value"] = qSqlRet.ToShortDateString();
}
else
{
string qSql = db.Database.SqlQuery<string>(string.Format("select Convert(varchar,{2}) from {0} where memberId='{1}'", qAlias.TableName, memberId, qAlias.FieldName)).FirstOrDefault();
dict["value"] = qSql;
}
lstDict.Add(dict);
}
}
if (lstDict != null && lstDict.Count > 0)
{
Result ret = SendSms(memberId, mobile, templateId, lstDict, sendMsg);
return ret;
}
else
return new Result(false, "参数不正确,不能发送短信!");
}
}
internal static Result SendSms(string memberId, string mobile, int templateId, object para, string message)
{
string defaultUser = "sys";
try
{
using (CRMEntities db = new CRMEntities())
{
StringBuilder sb = new StringBuilder();
List<Dictionary<string, string>> lstPara = (List<Dictionary<string, string>>)para;
sb.Append("{");
for (int i = 0; i < lstPara.Count; i++)
{
Dictionary<string, string> dict = lstPara[i];
sb.AppendFormat("\"{0\"}:\"{1}\"", dict["name"], dict["value"]);
if (i < lstPara.Count - 1)
sb.AppendFormat(",");
}
sb.Append("}");
var ent = new TM_Sys_SMSSendingQueue
{
Mobile = mobile,
Message = message,
MemberID = memberId,
AddedDate = DateTime.Now,
AddedUser = defaultUser,
Remark = "sys",
MsgPara = sb.ToString(),//JsonHelper.Serialize(para),
TempletID = templateId,
IsSent = false,
};
db.TM_Sys_SMSSendingQueue.Add(ent);
db.SaveChanges();
return new Result(true, "发送成功!");
}
}
catch (Exception ex)
{
return new Result(false, ex.Message);
}
}
C#后台利用正则表达式查找匹配字符的更多相关文章
- 在eclipse中利用正则表达式查找替换
众所周知,eclipse是可以用正则表达式来进行查找的,那么怎么利用正则表达式进行替换呢? 方法也很简单,就是在Replace with: 里面输入$来代表捕获型括号的匹配结果,$1为第一个匹配结果, ...
- swift 3.0 正则表达式查找/替换字符
1.什么是正则表达式 正则表达式,又称正规表示法.常规表示法(英语:Regular Expression,在代码中常简写为regex.regexp或RE),计算机科学的一个概念.正则表达式使用单个字符 ...
- linux 查找匹配文件中包含指定字符的 前五行,这里是指所有匹配的前五行
最近被问到 一个关于查找匹配字符的信息显示问题: 系统/etc/sysctl.conf文件会定义系统内核的一些配置,请查找和net有关的信息,并只打印前面5行信息. 解决方式大概试两种写法均可: 1. ...
- (转)ObjC利用正则表达式抓取网页内容(网络爬虫)
转自:http://www.cocoachina.com/bbs/read.php?tid=103813 *****boy]原创 2012年5月20日 在开发项目的过程,很多情况下我们需要利用互联网上 ...
- OC利用正则表达式获取网络资源(网络爬虫)
在开发项目的过程,很多情况下我们需要利用互联网上的一些数据,在这种情况下,我们可能要写一个爬虫来爬我们所需要的数据.一般情况下都是利用正则表达式来匹配Html,获取我们所需要的数据.一般情况下分以下三 ...
- ObjC利用正则表达式抓取网页内容(网络爬虫)
本文转载至 http://www.cocoachina.com/bbs/read.php?tid=103813&fpage=63 在开发项目的过程,很多情况下我们需要利用互联网上的一些数据,在 ...
- Sublime 、NotePad++中查找匹配中文字符
在Sublime .NotePad++中可以使用正则表达式 [\x{4e00}-\x{9fa5}] 查找匹配中文字符.
- Js 利用正则表达式和replace函数获取string中所有被匹配到的文本
js的replace函数除了替换文本以外还有获取所有被正则表达式匹配到的文本的功能.这里以一个简单的案例来作为演示. 利用正则查找出所有被两个花括号包裹的字符串: var str = '<div ...
- Notepad++正则表达式查找替换文本中文字符
测试需求 测试工具中xml配置文件中注释字段包含中文字符,在Win10系统下使用工具中偶尔会出现中文乱码导致配置文件失效.解决方法将配置文件中的中文注释换成英文注释或者直接替换删除.如何将配置文件中的 ...
随机推荐
- sql二进制数据权限
(3为权限组合值,结果为1=列表 2=新建 4=修改 8=删除) select 3 & 1 select 3 & 2 select 3 & 4 select 3 & 2 ...
- CentOS7 已安装telnet维修
今天搞下 Centos 7 以下升级 openssl 和 openssh ,顺便说下安装 telnet # 设备 telnet 避 ssh 无法登录 yum -y install xinetd tel ...
- [WebGL入门]二十四,补色着色
注:文章译自http://wgld.org/,原作者杉本雅広(doxas),文章中假设有我的额外说明,我会加上[lufy:],另外,鄙人webgl研究还不够深入,一些专业词语,假设翻译有误,欢迎大家指 ...
- maven学习系列(一)—maven安装和基本设置
maven下载和配置 第一步:下载apache-maven-2.3.2-bin.zip并解压到D:\tools,下载地址http://maven.apache.org/download.cgi 第二步 ...
- RH033读书笔记(9)-Lab 10 Understanding the Configuration Tools
Lab 10 Understanding the Configuration Tools Sequence 1: Configuring the Network with system-config- ...
- Atitit.Hibernate于Criteria 使用汇总and 关系查询 and 按照子对象查询 o9o
Atitit.Hibernate于Criteria 使用总结and 关联查询 and 依照子对象查询 o9o 1. Criteria,,Criterion ,, 1 <2. 基本的对象黑头配置磊 ...
- 讲座:采用Store检查邮件(1)
讲座:采用Store检查邮件(1) 一.邮件接收的体系结构 JavaMail API中定义了一个java.mail.Store类,用于运行邮件的接收任务,该类的实例对象封装了某种邮件接收协议的底层实施 ...
- VirtualBox创建虚拟电脑、执行Genymotion模拟器报错
当安装完Genynition关于Android应用的调试模拟器之后,在Genymotion执行的平台virtualBox:VirtualBox创建虚拟电脑.执行Genymotion模拟器报错: 错误卖 ...
- VS2010编写动态链接库DLL和单元测试,转让DLL测试的正确性
本文将创建一个简单的动态库-link,谱写控制台应用程序使用该动态链接库,该动态链接库为"JAVA调用动态链接库DLL之JNative学习"中使用的DLL,仅仅是项目及文件名不同. ...
- POJ 2828 Buy Tickets(排队问题,线段树应用)
POJ 2828 Buy Tickets(排队问题,线段树应用) ACM 题目地址:POJ 2828 Buy Tickets 题意: 排队买票时候插队. 给出一些数对,分别代表某个人的想要插入的位 ...