佚名通过本文主要向大家介绍了正则表达式以字母开头,正则表达式字母开头,正则表达式数字和字母,正则表达式匹配字母,正则表达式 字母等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
问题:字母开头的正则表达式怎么写?
描述:
解决方案1:
描述:
01-01
G05B19/05(2006.01)I
F26B9/06(2006.01)I
_12
类似于以上这四条的数据,要求判断是否是[A-Z]字母开头的记录,还是数字开头的记录。
if (Regex.IsMatch(str, @"[A-Z]*.?$"))
return "字母"
else if (Regex.IsMatch(str, @"[0-9]*$"))
return "数字"
else
return "-";
我是这么写的,正则判断不出来。
解决方案1:
你甚至都可以不用自己写正则表达式。
string str = ...;
bool isLetter = !String.IsNullOrEmpty(str) && Char.IsLetter(str[0]);
参考:http://stackoverflow.com/questions/3560393/how-to-check-first-character-of-a-string-if-a-letter-any-letter
解决方案2:正则表达式匹配开头用^
。
而且*
是表示0个或多个,也就是说没有也会匹配,所以[A-Z]*
也会匹配非字母开头的。
?
表示0个或1个,所以.?
表示最多匹配一个任意字符,后面再跟着匹配结束的$
自然就匹配不到了。
还有+
,表示匹配1个或多个。
$
表示匹配结尾(一般是结尾是换行,全局匹配的话就是字符串结束),如果你只想匹配开头的话,结尾就没必要了
所以你的两个正则应该是:
字母开头:^[A-Z]
数字开头:^[0-9]
字母开头是 ^[A-Za-z]
数字开头是 ^[0-9]