(?!^\*)\w{1,20}
我正在尝试确保输入长度在1到20个字符之间,而不是以“*”开头。但是,允许在阳光下任何其他角色。
该表达式在c#中不起作用,但似乎可以使用此测试程序:http://www.regexplanet.com/advanced/java/index.html
我需要改变什么?
感谢您对此有任何见解。
编辑: 根据要求,这是c#代码:
System.Text.RegularExpressions.Regex TempRegex = new System.Text.RegularExpressions.Regex(@"(?!^\*)\w{1,20}");
return TempRegex.IsMatch(_inputString);
答案 0 :(得分:2)
不完全确定您尝试使用首先捕获 zero-width negative lookahead assertion,但遵循正则表达似乎符合您的要求:
@"^[^\*]\w{0,19}$"
"^...$"
部分强制匹配整个字符串。第一个字符"[^\*]"
(星号以外的任何字符)已经计入[1-20]限制,因此范围为{0,19}。