5

この文字列に正規表現を使用する必要があります。


"\r\n+CMGL: 0,\"REC READ\",\"+79119968091\",,\"13/10/28,15:22:36+16\"\r\n10160008\r\n $GPMC,081915,A,5614.6801,N,04359.0266,E,0.0,190.2,121109,,*19\r\n+CMGL: 1,\"REC READ\",\"+79119968091\",,\" 13/10/28,15:34:26+16\"\r\n#ALARM! \r\n10160008\r\n$GPMC,081915,A,5614.6801,N,04359.0266,E,0.0,190.2,121109 ,,*19\r\n\r\nOK\r\n"


上記の文字列から 2 つの部分文字列 (すべての部分文字列は\r\n+CMGL:で始まり、\r\nで終わります) を取得する必要があります。

  1. \r\n+CMGL: 0,\"REC READ\",\"+79119968091\",,\"13/10/28,15:22:36+16\"\r\n10160008\r\n$ GPMC,081915,A,5614.6801,N,04359.0266,E,0.0,190.2,121109,,*19\r\n
  2. \r\n+CMGL: 1,\"REC READ\",\"+79119968091\",,\"13/10/28,15:34:26+16\"\r\n#アラーム! \r\n10160008\r\n$GPMC,081915,A,5614.6801,N,04359.0266,E,0.0,190.2,121109,,*19\r\n

私はこの正規表現を持っています

Regex r = new Regex(@"\+CMGL: (\d+),""(.+)"",""(.+)"",(.*),""(.+)""(\r\n((.|\n)*)\r\n\b)");

この正規表現は適切に機能しますが、最後のグループ (\r\n((.|\n)*)\r\n\b) では機能しません。問題は、新しい部分文字列の開始 ( \r\n+CMGL: ) が表示されるまで、文字列に含まれる\r\n記号の量がわからないことです。少し早いですがお礼を

4

1 に答える 1

2

\r\n+CMGL:で始まり、\ r\nで終わるには、以下の正規表現を使用できます。

\\r\\n\+CMGL:.*?\*19\\r\\n
于 2013-10-30T07:38:34.093 に答える