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系统下使用工具中偶尔会出现中文乱码导致配置文件失效.解决方法将配置文件中的中文注释换成英文注释或者直接替换删除.如何将配置文件中的 ...
随机推荐
- cocos2dx三种定时器使用
cocos2dx三种定时器的使用以及停止schedule.scheduleUpdate.scheduleOnce 今天白白跟大家分享一下cocos2dx中定时器的用法. 首先,什么是定时 ...
- OTN&互换amp; P-OTN有效降低100G 网络成本 (两)
OTN互换& P-OTN有效降低100G 网络成本 (两) 在全球范围内.网流量的增长速度是空前的,导致此现象的缘由包含云服务的增长.移动宽带和基于互联网的视频点播服务的增长. Cisco估计 ...
- —页面布局实例———win7自己的小算盘
晚上7各地点布局,9点半,刚拿到. 他发现自己专注的时候效率挺高真的哈萨克斯坦.计算器布局前.做了两件简单的页面布局练练手.今晚总体感觉更好,不难. 器之间调试有点蛋疼,真心不想搭理IE. 在进行布局 ...
- .NET读写Excel工具Spire.Xls使用(1)入门介绍
原文:[原创].NET读写Excel工具Spire.Xls使用(1)入门介绍 在.NET平台,操作Excel文件是一个非常常用的需求,目前比较常规的方法有以下几种: 1.Office Com组件的方式 ...
- std::string 不支持back
string s = "abc"; if ( s.back() == 'c' ) .... , 不支持back, 但是用VS2010好吧 后来发现, string的back/fr ...
- webclient下载文件 带进度条
private void button1_Click(object sender, EventArgs e) { doDownload(textBox1.Text.Trim()); } private ...
- 最新jhost免费jsp云空间会员邀请码
jhost支持jsp.php的免费云空间,邀请码用于激活空间服务: 邀请码:20141003104317_149661 有效期:2014-10-03 http://w ...
- HDU 1677 Nested Dolls
过了之后感觉曾经真的做过这样的类型的题. 之前一直非常疑惑二级排序的优先级问题,如今发现二级排序真的没有绝对的优先级. 对于此题,若按W排序,则有1到i件物品的W均小于等于第i+1件物品(设为A)的W ...
- Java 内存架构
a) 执行. main()作为该程序的初始线的起点.无论由线程开始在其他线程. JVM有两个内螺纹:守护线程和非守护线程,main()它是一个非守护线程.常由JVM自己使用.java程序 ...
- mysql常见操作汇总
1.Mysql服务突然启不来了,报错: 在分析时发现MySQL Server 5.0\data下面有个名称为用户名,扩展名为.err的文件: 150725 20:01:19 [Note] 自己的安装目 ...