1

私はこの入力文字列を持っています:

AT+CMGL=4\r\r\n+CMGL: 1,1,,155\r\nDFGDF312GF4J5457JG8J0JGKFJ345G67JHGFGHJ06FD45HJG86J958F4FHSGSDGFH23FJ24HGJH58G4D7D465HDK31HFDJCHGH8V7GD45231DFGF314J567V6GGK4GFJCHGKVGDJX765GHFCJX2X4537CCGHGK9VHJ3C2FJXJCGH\r\n+CMGL: 2,1,,126\r\nDFGDF312GF4J5457JG8J0JGKFJ345G67JHGFGHJ06FD45HJG86J958F4FHSGSDGFH23FJ24HGJH58G4D7D465HDK31HFDJCHGH8V7GD45231DFGF314J567V6GGK4GFJCHGKVGDJX765GHFCJX2X4537CCGHGK9VHJ3C2FJXJCGH\r\n+CMGL: 3,1,,148\r\nDFGDF312GF4J5457JG8J0JGKFJ345G67JHGFGHJ06FD45HJG86J958F4FHSGSDGFH23FJ24HGJH58G4D7D465HDK31HFDJCHGH8V7GD45231DFGF314J567V6GGK4GFJCHGKVGDJX765GHFCJX2X4537CCGHGK9VHJ3C2FJXJCGH\r\n\r\nOK\r\n

2つのキャプチャグループを抽出するこの正規表現の一致を実行し、NextMatch()メソッドを使用して各一致を繰り返します。

AT+CMGL=4\r\r\nこの文字列の開始( )と終了( )を除いて部分一致を実現でき\r\nOK\r\nます。これは、最初と最後の反復で異なります。

これは、私が達成できる部分一致に使用する正規表現です。

\+CMGL: \d+,\d+,,(\d+)\\r\\n(.*?)\\r\\n

完全に一致させるには、正規表現の正しい構文はどのようになりますか?

編集:pduの長さ(155)とpdu自体(nDFGDF312GF4J5457JG8J0JGKFJ345G67JHGFGHJ06FD45HJG86J958F4FHSGSDGFH23FJ24HGJH58G4D7

4

1 に答える 1

2

あなたは正しいです..あなたは正規表現でモードregexを使用する必要がありますsingleline

Regex myRegex = new Regex(yourRegex,RegexOptions.IgnoreCase | RegexOptions.Singleline);
foreach(Match m in myRegex.Matches(yourText))
{
    m.Groups[1].Value;//pdu length
    m.Groups[2].Value;//pdu buffer
}
于 2013-01-04T10:15:35.143 に答える