字符串中记号的计数
本文关键字:记号 字符串 | 更新日期: 2023-09-27 17:52:35
我真的很奇怪为什么下面的代码返回1而不是2。有线索吗?提前谢谢。
string report = "foo bar foo aloha hole hole foo cat gag weird gag strange tourist";
string name = "hole";
int count = Regex.Matches(report, @"(^|'s)" + Regex.Escape(name) + @"('s|$)").Count;
Console.WriteLine("count is " + c);
如果你只是想学习Regex
,那么很好,忽略这个
否则,对于使用其他方法(如LINQ
)如此简单的事情,Regex
是多余的:
var count = report.Split().Count(x => x == name);
由于第一个匹配占用了单词hole
周围的空格,因此无法匹配第二个hole
:
aloha hole hole foo
^ ^
你最好使用字边界'b
代替:
int count = Regex.Matches(report, @"'b" + Regex.Escape(name) + @"'b").Count;