C# 请用正则表达式更正
我正在使用port.ReadExisting()读取串行端口,以读取c#中GSM调制解调器的来电。我将读取的数据存储在字符串变量s中。现在我想将传入的数据与正则表达式进行比较。但是while条件永远不会执行。请提供更正 端口上的传入数据为C# 请用正则表达式更正,c#,regex,C#,Regex,我正在使用port.ReadExisting()读取串行端口,以读取c#中GSM调制解调器的来电。我将读取的数据存储在字符串变量s中。现在我想将传入的数据与正则表达式进行比较。但是while条件永远不会执行。请提供更正 端口上的传入数据为 RING +CLIP: "+919030665834",145,"",,"",0 我编写了以下代码: string s = port.ReadExisting(); Regex r = n
RING
+CLIP: "+919030665834",145,"",,"",0
我编写了以下代码:
string s = port.ReadExisting();
Regex r = new Regex(@"\r\n(.+)\r\n\+CLIP: ""\+(\d+)"",(.+),""(.*)"",(.*),""(.*)"",(\d+)\r\n");
Match m = r.Match(s);
while (m.Success)
{
if (s.Contains("\r\nRING\r\n"))
{
call_status.Text = "Incoming Call";
call_status.Visible = true;
status_phno.Text = m.Groups[1].Value;
}
}
我认为,+匹配的“环”和+剪辑之间应该有两条换行符。因此正则表达式将读取\r\n(+)\r\n\r\n+CLIP:
否则,这应该是一个容易调试的问题——只需开始用“.”替换越来越大的部分,从前面或后面开始。一旦它开始匹配,你就知道你刚刚输入的部分。是该部分导致了问题。我认为,+匹配的“环”和+剪辑之间应该有两条换行符。因此正则表达式将读取\r\n(+)\r\n\r\n+CLIP: 否则,这应该是一个容易调试的问题——只需开始用“.”替换越来越大的部分,从前面或后面开始。一旦它开始匹配,你就知道你刚刚输入的部分。是该部分导致了问题。使用此部分:
var match = Regex.Match(inputString, "RING[^\\+]*\\+CLIP:\\s*\"(?<phone>[^\"]*)\",(\\d+),\"([^\"]*)\",(\\w*),\"(\\w*)\",(\\w*)");
if(match.Success && inputString.Contains("RING"))
{
var phoneNumber = match.Groups["phone"].Value;
}
var match=Regex.match(输入字符串,“环[^\+]*\\+剪辑:\\s*\”(?[^\“]*)\”,(\\d+),\“([^\“]*)\”,(\\w*),\“(\\w*)”,(\\w*)”;
if(match.Success&&inputString.Contains(“环”))
{
var phoneNumber=match.Groups[“phone”].Value;
}
我跳过了除第一个“+”之外的任何字符:[^\+]*
使用此字符:
var match = Regex.Match(inputString, "RING[^\\+]*\\+CLIP:\\s*\"(?<phone>[^\"]*)\",(\\d+),\"([^\"]*)\",(\\w*),\"(\\w*)\",(\\w*)");
if(match.Success && inputString.Contains("RING"))
{
var phoneNumber = match.Groups["phone"].Value;
}
var match=Regex.match(输入字符串,“环[^\+]*\\+剪辑:\\s*\”(?[^\“]*)\”,(\\d+),\“([^\“]*)\”,(\\w*),\“(\\w*)”,(\\w*)”;
if(match.Success&&inputString.Contains(“环”))
{
var phoneNumber=match.Groups[“phone”].Value;
}
我跳过了除“+”之外的任何字符:
[^\+]*
使用以下正则表达式:
“环[^\+]\+剪辑:\s\”(?[^\”)\”、(\d+)、\“([^\”)\”、(\w*)、\“(\w*)\”、(\w*)”使用以下正则表达式: “环[^\+]\+剪辑:\s\”(?[^\”)\”、(\d+)、\“([^\”)\”、(\w*)、\“(\w*)\”、(\w*)”