Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/305.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 从文本中提取电话号码_C#_Windows Phone 7_Textblock - Fatal编程技术网

C# 从文本中提取电话号码

C# 从文本中提取电话号码,c#,windows-phone-7,textblock,C#,Windows Phone 7,Textblock,我想建立一个方法,将获得一个字符串(最好是文本块的文本),它将识别和突出显示字符串中的任何电话号码。目标是让用户能够点击任何号码并直接呼叫或发送文本(通过使用适当的启动器) 我怎样才能解决这个问题?有什么想法吗?提前谢谢你 您可以使用来执行此操作 例如:- var s= new Regex(@"(\(?[0-9]{3}\)?)?\-?[0-9]{3}\-?[0-9]{4}", RegexOptions.IgnoreCase); //North American number var tex

我想建立一个方法,将获得一个字符串(最好是文本块的文本),它将识别和突出显示字符串中的任何电话号码。目标是让用户能够点击任何号码并直接呼叫或发送文本(通过使用适当的启动器)

我怎样才能解决这个问题?有什么想法吗?提前谢谢你

您可以使用来执行此操作

例如:-

var s= new Regex(@"(\(?[0-9]{3}\)?)?\-?[0-9]{3}\-?[0-9]{4}",  
RegexOptions.IgnoreCase); //North American number

var text = "Some Texxt";
MatchCollection m= s.Matches(text);
String s=“abc05667788abc”;
字符串电话号码;
foreach(字符c在s中)
{
if(Char.isNumber(c)| | c==“”| | c==“+”)
{
phoneNumber=phoneNumber+c;
最小位数++;
如果(最小位数>=9)
{
检测到的号码(电话号码);
}
}
其他的
{
最小位数=0;
}
}
NumberDetected(字符串编号)
{ 
整数加整数=0;
foreach(原始编号中的字符c)
{
如果(c==“+”)
{
plusses++;
}
}

如果(优点你想要一个提取电话号码的解决方案,还是让用户点击一个号码并拨打/发送短信?使用这样的正则表达式可能会对你有所帮助。可能会重复。对于提取电话号码,已经有人回答:谢谢你们的回复,它们都很好,但我更喜欢保持简单,即避免使用常规表达式这似乎是最简单的方法,谢谢!@Icarus没问题。请告诉我们您是如何解决点击呼叫问题的:)这也将匹配
1+2+3+4+5
。@I4V有一个努力/结果因素。为什么你不提供一个更好的答案,永远不会漏掉电话号码。但是如果你想要另一层稳定性,请告诉我,我会在NumberDetected方法中添加一些代码。现在它将匹配
1234+5678
String s = "abc055667788abc";
string phoneNumber;
foreach(char c in s)
{
    if(Char.isNumber(c) || c == " " || c == "+")
    {
        phoneNumber = phoneNumber + c;
        minimumDigits++;
        if(minimumDigits >= 9)
        {
            NumberDetected(phoneNumber);
        }
    }
    else
    {
        minimumDigits = 0;
    }
}

NumberDetected(string rawNumber)
{ 
    int plusses = 0;
    foreach(char c in rawNumber)
    {
        if(c == "+")
        {
            plusses++;
        }
    }
    if(plusses <= 1)
    {
        if(rawNumber.StartsWith("+")
        {
            NumberDone(rawNumber);
        }
    }
    else
    {
        MessageBox.Show("Number contained too many plusses!");
    }
}