C# 如何从字符串中提取起始字符?
我有一个列UserID,列中的值以D,SIN,SUD开头 D4568732 SIN4544 SUD45454C# 如何从字符串中提取起始字符?,c#,string,c#-4.0,C#,String,C# 4.0,我有一个列UserID,列中的值以D,SIN,SUD开头 D4568732 SIN4544 SUD45454 如何在C#?解决方案1中提取此起始模式 您可以尝试从字符串中删除字母&结果将仅为数字 string input = "ABC12345"; var result = Convert.ToInt32(new String(input.Where(p => Char.IsNumber(p)).ToArray())); 解决方案2 另一个可能的答案是(这里它只是跳过输入字符串
如何在C#?解决方案1中提取此起始模式 您可以尝试从字符串中删除字母&结果将仅为数字
string input = "ABC12345";
var result = Convert.ToInt32(new String(input.Where(p => Char.IsNumber(p)).ToArray()));
解决方案2
另一个可能的答案是(这里它只是跳过输入字符串中的字母)
解决方案1 您可以尝试从字符串中删除字母&结果将仅为数字
string input = "ABC12345";
var result = Convert.ToInt32(new String(input.Where(p => Char.IsNumber(p)).ToArray()));
解决方案2
另一个可能的答案是(这里它只是跳过输入字符串中的字母)
使用如下正则表达式:
System.Text.RegularExpressions.Regex.Match("SIN454544", "^D|SIN|SUD")
使用如下正则表达式:
System.Text.RegularExpressions.Regex.Match("SIN454544", "^D|SIN|SUD")
正则表达式用于处理字符串,如下所示
string str = "SIN454544";
var matches=Regex.Match(str,"^([A-Z]+)\\d+");
var patten = matches.Groups[1].Value;
“[A-Z]+”匹配任何英文字符,“d+”匹配任何数字,“()”将获取
组中的匹配值正则表达式适用于处理字符串,如下所示
string str = "SIN454544";
var matches=Regex.Match(str,"^([A-Z]+)\\d+");
var patten = matches.Groups[1].Value;
“[A-Z]+”匹配任何英文字符,“d+”匹配任何数字,“()”将获取
匹配组中的值您还需要添加一个
.SkipWhile(Char.isleter)
。也许可以解释一下为什么这样做,好的回答是的!这是另一个可能的答案。在这些代码示例中,您可能是指.ToArray()
,而不是.ToString()
。我不能用.ToString()吗?对不起,问题不是:“如何在C中提取此起始模式?”在解决方案1中,result
是一个string.Empty
,在这一秒我得到了数字,您还需要添加一个.SkipWhile(Char.isleter)
。也许可以解释一下为什么这样做,好的回答是的!这是另一个可能的答案。在这些代码示例中,您可能是指.ToArray()
,而不是.ToString()
。我不能用.ToString()吗?对不起,问题不是:“如何在C中提取此起始模式?”在解决方案1中,结果
是一个字符串。空的
,在第二秒我得到数字是的,一些值在开始时包含该模式,一些值不是…是的,我忽略这些值。如果我的模式在开始时处于随机位置,我将忽略这些值,我的意思是不在一开始@middleSolution只有在字符串以模式开始时才起作用。省去“^”使其在任何位置都能工作。System.Text.RegularExpressions.Regex.Match(“34534SIN454544”,“D | SIN | SUD”)如果我的模式在开始时处于随机位置,则此方法有效,我的意思是不在开始时@middleSolution仅在字符串以模式开始时有效。省去“^”使其在任何位置都能工作。System.Text.RegularExpressions.Regex.Match(“34534SIN454544”,“D | SIN | SUD”)