从设备读取短信的正则表达式

本文关键字:正则表达式 读取 | 更新日期: 2023-09-27 18:06:52

我正在使用下面的代码从移动设备获取短信。问题是它不读取空字符,新行('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();
    }
}
例句:

如果短信正文包含:"my name is bilal Ahmed"它将读取上述短信

如果我的短信是:"my name is 'n bilal Ahmed"它将不读取短信。

例如,如果我的短信是:" "它将不会读取短信。

我认为使用正则表达式有一些问题。

从设备读取短信的正则表达式

最好在输入中显示全文,但我猜您可以尝试使用类似于

的内容
Regex r = new Regex(@"'+CMGL: ('d*),""(.+)"",""(.+)"",(.*),""(.+)""'r'n((.|'r|'n)+)'r'n");