我把这个正则表达式做错了什么

本文关键字:错了 什么 正则表达式 | 更新日期: 2023-09-27 17:59:52

(?!^'*)'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);

我把这个正则表达式做错了什么

不完全确定您要用第一次捕获零宽度负前瞻断言做什么,但以下正则表达式似乎符合您的要求:

@"^[^'*]'w{0,19}$"

"^...$"部分强制整个字符串匹配。第一个字符"[^'*]"(除星形以外的任何字符(已根据[1-20]限制进行计数,因此范围为{0,19}。