c# - 获取 Regex.Matches 在位置 0 开始匹配
问题描述
我正在尝试使用正则表达式来计算某个字符串出现在另一个逗号分隔的字符串中的次数。
我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,因为它与
"狗,猫,鸟,黑狗,狗(1)",
但是它返回一个 3,因为它也与 blackdog 的 dog 部分相匹配。
有什么方法可以让它只在识别从字符串开头开始的匹配时才算作匹配?还是我只是错误地使用了正则表达式?
解决方案
如评论中所述,正则表达式可能不是您实现所需结果的最合乎逻辑的方式。但是,如果您想使用正则表达式来查找匹配项,则类似这样的内容将提供您想要的结果
(?<=,|^)dog
这将执行“正向向后查找”以确保单词“dog”前面有一个逗号或在您正在搜索的字符串的开头。
更多关于正则表达式环视的信息:https ://www.regular-expressions.info/lookaround.html
推荐阅读
- javascript - 角度等效 vue v-bind="$props"
- flutter - Flutter:需要触发/重新运行 StreamProvider QuerySnapshot 流
- java - 通过 Jumpbox/Proxy 从我的本地机器连接到远程 MySQL
- c - 这里的代码在代码块中完美运行,但在 codechef IDE 中它给出了 SIGTSTP(运行时错误并在输出中显示很多 0)
- php - 嵌套 simple-html-dom file_get_html($url)
- javascript - WebRTC切换摄像头
- javascript - 将内容可编辑的表格数据输入限制为一个带一位小数的数字
- powershell - 是否可以从文件中提取元数据,例如内容创建日期 - 我无法使用 PowerShell
- javascript - 可以从网站的根目录访问 NODE.JS 库吗?
- javascript - 使用 JavaScript 的 HTML 表格