C# 正则判断问题

塔克茜丝 2021-01-23 10:55:28

如下:

Regex.Matches("172.10.10.10",".").Count 结果是11,为啥?

又试了其他

Regex.Matches("172.10.10.10",@".").Count 结果是9,为啥?


Regex.Matches("172,10,10,10",",").Count 把点改为逗号,结果是3正常

Regex.Matches("172.10.10.10","0.").Count 结果是2,正常

Regex.Matches("172.10.10.10",".1").Count 结果是3,正常


看上去直接判断点有问题,请解惑,谢谢。

...全文
240 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
兔子-顾问 2021-01-27
  • 打赏
  • 举报
回复
Regex.Matches("172.10.10.10", Regex.Escape(".")).Count 用Regex.Escape把你要搜索的文本处理一下。
狂彪的蜗牛 2021-01-23
  • 打赏
  • 举报
回复
点匹配除换行符“\n”的任何单字符,如果要匹配点请输入"\."
键盘敲出字 2021-01-23
  • 打赏
  • 举报
回复
执行环境 .NET Framework 4.5.2

Console.WriteLine(Regex.Matches("172.10.10.10", ".").Count.ToString());//12
Console.WriteLine(Regex.Matches("172.10.10.10", @".").Count.ToString());//12
Console.WriteLine(Regex.Matches("172,10,10,10", ",").Count.ToString());//3
Console.WriteLine(Regex.Matches("172.10.10.10", "0.").Count.ToString());//2
Console.WriteLine(Regex.Matches("172.10.10.10", ".1").Count.ToString());//3
前两条输入12是因为 . 是通配符 若要匹配文本句点字符(. 或 \u002E),你必须在该字符前面加上转义符 (\.)。参考文档

Console.WriteLine(Regex.Matches("172.10.10.10", "\\.").Count.ToString());//3
Console.WriteLine(Regex.Matches("172.10.10.10", @"\.").Count.ToString());//3

110,537

社区成员

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

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

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