例如我们有这个字符串gf_T2fg57342523K_4212
我想拯救8个序列号,因此它将是57342523
另一个例子rt23A98457628Tr5462将是98457628
最好的原因是什么?
答案 0 :(得分:5)
您可以使用匹配8位数的正则表达式:
var input = "gf_T2fg57342523K_4212";
var match = Regex.Match(input, @"\d{8}");
if (match.Success)
{
var number = match.Value;
//Do something
}
答案 1 :(得分:0)
您可以使用Regex进行此操作。
Regex regex = new Regex(@"\d{8}");
Match match = regex.Match("gf_T2fg57342523K_4212");
string value = string.Empty;
if(match.Success) // If it is not important to know if it found something you cam suppress this if.
value = match.Value;
答案 2 :(得分:0)
假设您要匹配仅包含 8个连续数字(而不是更多)的字符串,您将需要比其他答案中提供的更复杂的正则表达式。在这里,我使用了负面的后视和消极的前瞻:
(?<!\d)\d{8}(?!\d)
示例:
Regex.Match("gf_T2fg57342523K_4212", @"(?<!\d)\d{8}(?!\d)")
> Success, Value = "57342523"
Regex.Match("gf_T2fg111157342523K_4212", @"(?<!\d)\d{8}(?!\d)")
> Failure
有关外观分组结构的详细信息,请参阅msdn。
答案 3 :(得分:-1)
var result = Regex.Matches(rt23A98457628Tr5462, @"\d{8}")
.Cast<Match>()
.Select(m => m.Value)
.ToList();