我正在使用以下代码从移动设备获取短信。问题是它不读取空字符、换行符 (\N) 和 \r。
try
{
Regex r = new Regex(@"\+CMGL: (\d*),""(.+)"",""(.+)"",(.*),""(.+)""\r\n(.+)\r\n");
Match m = r.Match(input);
while (m.Success)
{
ShortMessage msg = new ShortMessage();
//msg.Index = int.Parse(m.Groups[1].Value);
msg.Index = m.Groups[1].Value;
msg.Status = m.Groups[2].Value;
msg.Sender = m.Groups[3].Value;
msg.Alphabet = m.Groups[4].Value;
msg.Sent = m.Groups[5].Value;
msg.Message = m.Groups[6].Value;
//string a = msg.Message;
//string replacement = Regex.Replace(a, @"\t|\n|\r", "");
// msg.Message = replacement;
messages.Add(msg);
m = m.NextMatch();
}
}
例如:
如果短信正文包含:“我的名字是 bilal Ahmed”,它将读取上述短信
如果我的短信是:“我的名字是 \n bilal Ahmed”,它将不会读取短信。
例如,如果我的短信是:“”,它将不会读取短信。
我认为使用正则表达式存在一些问题。