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系统下使用工具中偶尔会出现中文乱码导致配置文件失效.解决方法将配置文件中的中文注释换成英文注释或者直接替换删除.如何将配置文件中的 ...
随机推荐
- Android Splash界面支持用户点击 直接进入主界面
转载请注明出处:http://blog.csdn.net/lmj623565791/article/details/23613403 现在大部分APP都有Splash界面,下面列一下Splash页面的 ...
- [LeetCode129]Sum Root to Leaf Numbers
题目: Given a binary tree containing digits from 0-9 only, each root-to-leaf path could represent a nu ...
- 深入解析_Android的自定义布局
前言: 这篇文章是前Firefox Android工程师(现在跳槽去Facebook了) Lucas Rocha所写,文中对Android中常用的四种自定义布局方案进行了很好地分析,并结合这四种And ...
- 流动python - 什么是魔术方法(magic method)
我们经常看到各种各样的方法已经被包围了由双下划线,例如__init__,他们是魔术方法. 魔术方法python语言预订好"协议",在不同情况下不同的魔术方法,是隐式调用.我们重写这 ...
- xml它解析----DOM解析
DOM模型(documentobject model) •DOM解析器在解析XML文档时,会把文档中的全部元素,依照其出现的层次关系.解析成一个个Node对象(节点). •在dom中.节点之间关系例如 ...
- win8.1 usb3 速度慢的解决方法
我买的金士顿u盘 驱动也装了,口业插对了 速度还是很慢 30m左右 解决方法 1 搞定了·,主板驱动问题.卸了主板驱动usb3.0的速度立马上100m/s,即使装了联想官方的驱动也会影响USB3.0的 ...
- 每天进步一点点-->函数fseek() 使用方法
在阅读代码时,遇到了非常早之前用过的fseek(),非常久没实用了,有点陌生,写出来以便下次查阅. 函数功能是把文件指针指向文件的开头,须要包括头文件stdio.h fseek 函数名: fsee ...
- [Android 4.4.4] 泛泰A870 通过刷第三版 Mokee4.4.4 KTU84P 20140626 RC2.1 by syhost
主题及注意事项请访问以前的版本: http://blog.csdn.net/syhost/article/details/29931291 此RC2.1版比RC2.0改进的地方: 1. Mokee本身 ...
- 深入研究Java类载入机制
深入研究Java类载入机制 类载入是Java程序运行的第一步,研究类的载入有助于了解JVM运行过程,并指导开发人员採取更有效的措施配合程序运行. 研究类载入机制的第二个目的是让程序能动态的控制类载 ...
- Integer比较
/** * @time 2014-06-25 * @author Cao HaiCheng * */ public class demo { public static void main(Strin ...