我把这个正则表达式做错了什么
本文关键字:错了 什么 正则表达式 | 更新日期: 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}。