如何提取第一个字符和之后的数字,直到在字符串中找到一个字符 (a-z) - C# 2.0
How to extract first character and numbers after that until find a character (a-z) in a string - C# 2.0
如何从字符串的第二个索引中提取数字,直到在字符串中找到字符 (a-z)?
我正在使用 C# 2.0 版(由于某些原因无法升级)。
这里有一些例子;
- M000067TGFD45F = M000067
- B000064TFR765TXT = B000064
- B000065TFR765 = B000065
- B000067TGFD = B000067
我试过 Regex("[^0-9]") 如果数字后没有字符(第 4 个示例),它会起作用
"B" + regexOnlyNumbers.Replace(mystring, string.Empty);
您可以使用
string text = "M000067TGFD45F";
Match m = Regex.Match(text, @"^[A-Z][0-9]+");
if (m.Success)
{
Console.WriteLine(m.Value);
}
参见regex demo。
详情
^
- 字符串开头
[A-Z]
- 大写 ASCII 字母
[0-9]+
- 一个或多个 ASCII 数字。
或者,您可以考虑 ^[A-Z][^A-Z]+
模式,其中 [^A-Z]+
匹配除大写 ASCII 字母以外的任何一个或多个字符。
要忽略大小写,请使用 RegexOptions.IgnoreCase
:Regex.Match(text, @"^[A-Z][0-9]+", RegexOptions.IgnoreCase)
。
如何从字符串的第二个索引中提取数字,直到在字符串中找到字符 (a-z)?
我正在使用 C# 2.0 版(由于某些原因无法升级)。
这里有一些例子;
- M000067TGFD45F = M000067
- B000064TFR765TXT = B000064
- B000065TFR765 = B000065
- B000067TGFD = B000067
我试过 Regex("[^0-9]") 如果数字后没有字符(第 4 个示例),它会起作用
"B" + regexOnlyNumbers.Replace(mystring, string.Empty);
您可以使用
string text = "M000067TGFD45F";
Match m = Regex.Match(text, @"^[A-Z][0-9]+");
if (m.Success)
{
Console.WriteLine(m.Value);
}
参见regex demo。
详情
^
- 字符串开头[A-Z]
- 大写 ASCII 字母[0-9]+
- 一个或多个 ASCII 数字。
或者,您可以考虑 ^[A-Z][^A-Z]+
模式,其中 [^A-Z]+
匹配除大写 ASCII 字母以外的任何一个或多个字符。
要忽略大小写,请使用 RegexOptions.IgnoreCase
:Regex.Match(text, @"^[A-Z][0-9]+", RegexOptions.IgnoreCase)
。