C# RegEx不支持多行修饰符

wpx232ag  于 2023-08-08  发布在  C#
关注(0)|答案(2)|浏览(107)

我一直在匹配不同的模式,但C#中的正则表达式似乎很复杂。
我的弦是这样的

AT+CMGL="REC UNREAD"
OK

字符串
在OK之后还有2个空格。但即使我匹配到OK,也不会成功。我想像这样匹配整个字符串:

string pattern = @"AT\+CMGL=""REC UNREAD""\r\n";
pattern += "OK\r\n";
pattern += "\r\n";
Match match = Regex.Match(content, pattern, RegexOptions.Multiline);
if (match.Success)
   return;

6ss1mwsb

6ss1mwsb1#

工作了一天多才发现,有一个Regex.Escape(String) Method。通过grouping和Regex.Escape(),我能够识别里面的内容。我发现是“\r\n”所以正则表达式是:

@"AT\+CMGL=""REC UNREAD""\r\r\n";
pattern += "OK\r\n";
pattern += "\r\n$";

字符串

vi4fp9gy

vi4fp9gy2#

您可以使用\s*匹配多个空格。

using System;
using System.Text.RegularExpressions;

public class Example
{
    public static void Main()
    {
        string pattern = @"AT\+CMGL=""REC UNREAD""\s*OK\s*";
        string input = @"AT+CMGL=""REC UNREAD""
OK

";
        RegexOptions options = RegexOptions.Multiline;
        
        foreach (Match m in Regex.Matches(input, pattern, options))
        {
            Console.WriteLine("'{0}' found at index {1}.", m.Value, m.Index);
        }
    }
}

字符串

相关问题