【发布时间】:2018-05-31 14:29:49
【问题描述】:
我正在尝试使用正则表达式来计算某个字符串出现在另一个逗号分隔的字符串中的次数。
我正在使用Regex.Matches(comma-separated string, certain string).Count 来获取号码。我唯一的问题是,如果它在字符串的开头排列,我希望它简单地算作匹配。
例如,如果我有逗号分隔的字符串
string comma_separated = "dog,cat,bird,blackdog,dog(1)";
并想查看搜索字符串与逗号分隔字符串的内容匹配多少次
string search = "dog";
我用:
int count = Regex.Matches(comma_separated, search).Count;
我希望它是 2,因为它与
匹配“狗,cat,bird,blackdog,狗(1)”,
但是它返回一个 3,因为它也与 blackdog 的 dog 部分匹配。
有什么方法可以让它仅在识别从字符串开头开始的匹配时才算作匹配?还是我只是错误地使用了正则表达式?
【问题讨论】:
-
Regex 似乎是适合这里工作的错误工具。您可以用逗号分隔字符串,然后按以“dog”开头的结果过滤结果,然后计算出现次数。
-
@zzzzBov 是的,我想知道,谢谢!
-
[^,]dog之类的呢? - 单词 dog 之前的行首或逗号? -
@zzzzBov 这种方法的问题是它还计算字符串“doggggg”
-
@Kishore,鉴于问题的详细信息,这听起来很合适。