正则 单词全字匹配查找 reg 边界查找 精确匹配 只匹配字符 不含连续的字符
单词全字匹配查找用的是 单词边界 \b查找的关键字\b
string类中有个IndexOf和Contains方法,但这2个方法都是包含的意思。
包含
从下面这个图可以看出边界和包含的区别,下面每一行都包含roman这个关键字,但不是每行都全字匹配roman的 (这里正则开启了忽略大小写了).
此图中包含 每行都有roman ,相当于string类的IndexOf,Contains
边界限制
此图是是使用了边界 全字匹配
只有完全一样的才符合结果
\broman\b 正则写法
正则写成 \b{s}\b 这对C#来说就是 bromanb而不是正则的\broman\b,所以正则要写成这样 \\b{s}\\b
/// <summary> ///单词全字 匹配查找 /// </summary> /// <param name="s">要查找的字符串,不区分大小写</param> /// <returns>查到返回真,否则返回假</returns> public static bool Find(string res, string s) { return Regex.IsMatch(res, $"\\b{s}\\b", RegexOptions.IgnoreCase); }
附注:
测试用的文本
正则表达式网址:https://regexr.com/
English Romanticism 英国浪漫主义 German romanticism 德国浪漫主义 Roman Serif 字体 Romanticism literature 唯美主义文学 Uppercase roman 大写罗马数码 early romanticism 前期浪漫主义 holy roman empire n.神圣罗马帝国 new romantic 新浪漫;新浪漫主义 racism romanticism 种族关系 roman architecture 罗马式建筑 roman empire 罗马帝国(指公元前27年到公元476年的罗马奴隶制国家) roman law 罗马法 roman numerals 罗马数字 romantic love 浪漫爱情 romantic movement 浪漫主义运动(十八世纪末及十九世纪初西欧掀起的文学艺术运动) times new roman 新罗马字体 western roman empire 西罗马帝国
string.IndexOf,string,Contains 要查找的字 不区分大小写
//如果找到该字符串,则为从当前实例的起始位置开始的从零开始的 value 的索引位置;否则为 -1。 如果 value 为 Empty,则返回值为 startIndex。 public static bool Find1(string res, string s) { return res.IndexOf(s, StringComparison.OrdinalIgnoreCase) != -1; } //如果 true 参数出现在此字符串中,或者 value 为空字符串 (""),则为 value;否则为 false。 public static bool Find2(string res, string s) { return res.ToLower().Contains(s.ToLower()); }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 字符编码:从基础到乱码解决