我正在尝试将两个.net正则表达式合并为一个。以下表达式验证excel,如单元名称。
Regex.IsMatch(name, @"^[A-Za-z]{1}[\w\.]*$") &&
!Regex.IsMatch(name, @"^[A-Za-z]{1,2}\d+$");
第一部分确保单元名称以字符开头,可以是任意长度。第二个确保单元名称不是单元格引用;例如,A1,AA1,AA11等
答案 0 :(得分:1)
以下可能有效:
^[A-Za-z](?![A-Za-z]?\d+$)[\w.]*$
由于第一个正则表达式必须匹配而第二个正则表达式必须匹配,所以我将第二个正则表达式的一部分移动到negative lookahead,它不会消耗匹配中的任何字符,但仍然会使RE拒绝字符串匹配第二个RE。
答案 1 :(得分:1)
我相信你可以取消对IsMatch
的第二次调用,它应该没有什么区别。
Regex.IsMatch(name, @"^[A-Za-z]{1}[\w.]*$")
itsslef中的这种模式确保字符串中不存在数字(0 - 9),因此它应该足够了。