在一串含有汉字和英文字母及数字的字符串中,如: 原字符串 结果
---------------------------------------
上海SDFG456 SDFG456
飞利浦SPM3702BB雅致黑 SPM3702BB注意:字母在字符串中位置是不固定的。
性能的考虑。
---------------------------------------
上海SDFG456 SDFG456
飞利浦SPM3702BB雅致黑 SPM3702BB注意:字母在字符串中位置是不固定的。
性能的考虑。
正则
[\u4e00-\u9fa5]
string str = "飞利浦SPM3702BB雅致黑";
Regex re = new Regex(@"[\u4e00-\u9fa5]");
string strnew = re.Replace(str, "");
static void Main(string[] args)
{
GetCharAndDigit("上海SDFG456");
GetCharAndDigit("飞利浦SPM3702BB雅致黑");
}
static void GetCharAndDigit(string input)
{
foreach (Match match in Regex.Matches(input, @"[a-zA-Z\d]+"))
Console.WriteLine(match.Value);
}
/*
输出:
SDFG456
SPM3702BB
*/
for (int i = 0; i < str.Length; i++)
str_ += str[i] < (char)255 ? str[i].ToString() : "";
System.Console.Write(str_);
string input = "飞利浦SPM3702BB雅致黑";
Regex re = new Regex(@"[^\u4e00-\u9fa5]+"); //匹配至少一个非汉字字符
Match m = re.Match(input);
string output = m.Value; // SPM3702BB
如果是
string input = "飞利浦SPM3702BB雅致黑上海SDFG456"
可以这样
Regex re = new Regex(@"[^\u4e00-\u9fa5]+");
MatchCollection mc = re.Matches(input);
foreach(Match m in mc)
{
Console.WriteLine(m.Value); //依次将结果输出来
}
input.replace("/^([\x00-\x7F]|[\x80-\xFE][\x40-\x7E\x80-\xFE]){30}/","")SPM3702BB