我想找到一个具有特定子串的固定长度的字符串。但我需要像在SQL查询中那样做。
实施例: 我有像 -
这样的字符串AB012345
AB12345
AB123456
AB1234567
AB98765
AB987654
我想选择最初有AB
字符串且之后有6个字符的字符串。这可以通过SELECT * FROM [table_name] WHERE [column_name] LIKE 'AB______'
在SQL中完成(AB
之后的6个下划线)。
结果将是:
AB012345
AB123456
AB987654
我需要知道是否有任何方法可以使用AB______
以C#方式选择字符串。
答案 0 :(得分:3)
考虑到你有一个字符串数组:
string[] str = new string[3]{"AB012345", "A12345", "AB98765"};
var result = str.Where(x => x.StartsWith("AB") && x.Length == 8).ToList();
逻辑是,如果它以AB
开头,其长度为8.这是你最好的匹配。
答案 1 :(得分:3)
您可以使用Regular Expressions过滤结果:
List<string> sList = new List<string>(){"AB012345",
"AB12345",
"AB123456",
"AB1234567",
"AB98765",
"AB987654"};
var qry = sList.Where(s=>Regex.Match(s, @"^AB\d{6}$").Success);
答案 2 :(得分:2)
这应该做到
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();
首先x.Length == 8
确定长度,x.StartsWith("AB")
确定字符串开头所需的字符
答案 3 :(得分:1)
这可以通过使用string.Startwith和string.Length函数来实现:
public bool CheckStringValid (String input)
{
if (input.StartWith ("AB") && input.Length == 8)
{
return true;
}
else
{
return false;
}
}
如果字符串符合您的条件,则返回true。
希望这有帮助。
答案 4 :(得分:1)
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());
}