求一正则,不匹配admin的所有字符串

chai21cn 2010-08-25 03:31:00

Regex regex = new Regex('........');
regex.IsMatch("admin") 为false
regex.IsMatch("admin1") 为true
regex.IsMatch("1admin") 为true
regex.IsMatch("chai21cn") 为true
本人想破脑袋也没想出来.
...全文
137 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
兔子-顾问 2010-08-25
  • 打赏
  • 举报
回复
$表示结束

^(?!admin$).+$
^表示开始
(?!admin$)
分开看
(?!exp)
表示前面的匹配:^文本开始,之后,不能是exp匹配到的内容,如果匹配到,则表达式失败。
admin表示你的文本
$表示字符串结束
和一起,意思是,文本开始不能是admin然后文本结束,这样的,此外,任何情况都可以匹配。
chai21cn 2010-08-25
  • 打赏
  • 举报
回复
还可以在括号里加$,这个是怎么个用法?
chai21cn 2010-08-25
  • 打赏
  • 举报
回复
换种叫法
能匹配不是admin的所有字符串
兔子-顾问 2010-08-25
  • 打赏
  • 举报
回复
测试了一下。不对。这样

^(?!admin$).+$



static void Main(string[] args)
{
Regex regex = new Regex("^(?!admin$).+$");
Console.WriteLine("admin : " + regex.IsMatch("admin").ToString());
Console.WriteLine("admin1 : " + regex.IsMatch("admin1").ToString());
Console.WriteLine("1admin : " + regex.IsMatch("1admin").ToString());
Console.WriteLine("chai21cn : " + regex.IsMatch("chai21cn").ToString());
Console.ReadKey();
}


结果:
admin : False
admin1 : True
1admin : True
chai21cn : True
chai21cn 2010-08-25
  • 打赏
  • 举报
回复
因为它是不admin
Peter200694013 2010-08-25
  • 打赏
  • 举报
回复
[Quote=引用楼主 chai21cn 的回复:]

regex.IsMatch("chai21cn") 为true

[/Quote]
这个为什么为true?
兔子-顾问 2010-08-25
  • 打赏
  • 举报
回复
正好看反了。囧

(?m)^(?!\badmin\b.+$).+$
兔子-顾问 2010-08-25
  • 打赏
  • 举报
回复
\badmin\b

110,534

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧