C# 在C中查找具有特定字符串部分的固定长度字符串
我想找到一个具有特定子字符串的固定长度字符串。但我需要像在SQL查询中那样做 例如: 我有像-C# 在C中查找具有特定字符串部分的固定长度字符串,c#,.net,string,linq,C#,.net,String,Linq,我想找到一个具有特定子字符串的固定长度字符串。但我需要像在SQL查询中那样做 例如: 我有像- AB012345 AB12345 AB123456 AB1234567 AB98765 AB987654 我想选择先有AB,然后有6个字符的字符串。这可以在SQL中通过从[table_name]中选择*来完成,其中[column_name]像'AB'一样在AB后面加下划线 因此,结果将是: AB012345 AB123456 AB987654 我需要知道是否有任何方法可以用C来选择字符串,考虑到您
AB012345
AB12345
AB123456
AB1234567
AB98765
AB987654
我想选择先有AB,然后有6个字符的字符串。这可以在SQL中通过从[table_name]中选择*来完成,其中[column_name]像'AB'一样在AB后面加下划线
因此,结果将是:
AB012345
AB123456
AB987654
我需要知道是否有任何方法可以用C来选择字符串,考虑到您有一个字符串数组,可以使用AB.:
string[] str = new string[3]{"AB012345", "A12345", "AB98765"};
var result = str.Where(x => x.StartsWith("AB") && x.Length == 8).ToList();
逻辑是从AB开始,长度为8。这是你最好的比赛 这应该可以
List<string> sList = new List<string>(){
"AB012345",
"AB12345",
"AB123456",
"AB1234567",
"AB98765",
"AB987654"};
List<string> sREsult = sList.Where(x => x.Length == 8 && x.StartsWith("AB")).ToList();
first x.Length==8确定长度,x.STARTSWITSAB确定字符串开头所需的字符,可用于过滤结果:
List<string> sList = new List<string>(){"AB012345",
"AB12345",
"AB123456",
"AB1234567",
"AB98765",
"AB987654"};
var qry = sList.Where(s=>Regex.Match(s, @"^AB\d{6}$").Success);
这可以通过使用string.Startwith和string.Length函数实现,如下所示:
public bool CheckStringValid (String input)
{
if (input.StartWith ("AB") && input.Length == 8)
{
return true;
}
else
{
return false;
}
}
如果字符串符合您的条件,则返回true
希望这有帮助。Uhm..使用正则表达式?刚出现的Regex@AB.{6} $匹配AB和其后的任何6个字符,直到行尾。@cubrr,您能作为答案发布吗?我会用你的方式,接受@MaciejLos的回答。将\d更改为。在他的Regexp中匹配AB后面的任何字符,而不是任何数字。我想知道是否有任何方法可以使用AB __________________?这一个也很好,因为它以AB开头,结尾有6个字符。我不确定我是否理解你排除它的意思。如果像CONTANSAB这样的事情能做的更好。比如,如果我可以使用ContainsAB\uuuuuuuuuuuuuuuuuuuuuuuuuu进行选择。实际上,Contains与字符串匹配,您不能使用类似的内容。它会匹配的。如果你想创建一个掩码,或者更通用的东西,那么正则表达式将是你最好的选择。那么我想我必须切换到正则表达式。谢谢你的解决方案。
var strlist = new List<string>()
{
"AB012345",
"AB12345",
"AB123456",
"AB1234567",
"AB98765",
"AB987654"
};
var result = strlist.Where(
s => (s.StartsWith("AB") &&(s.Length == 8))
);
foreach(var v in result)
{
Console.WriteLine(v.ToString());
}