正则表达式全词匹配的问题

问题描述

我试用正则‘b’进行全词匹配stringskillKeyWord=@"Borland";Regexreg2=newRegex(@"b"+skillKeyWord+@"b");Console.WriteLine(reg2.IsMatch("thisisanBorlandproject"));Console.Read();这样是可以匹配成功的。---------------------------------------------------------------------------------------------------------------------------------------------------如果遇到了正则表达式的特殊字符,比如+,这时候需要对正则的字符进行转义,但是如果转义的字符正好在单词结尾,正则表达式就怎么也不能识别单词边界。stringskillKeyWord=@"BorlandC++";Regexreg2=newRegex(@"b"+skillKeyWord.Replace("+",@"+")+@"b");Console.WriteLine(reg2.IsMatch("thisisanBorlandC++project"));Console.Read();

解决方案

解决方案二:
如果字符串里面是+你怎么办?难道你还做一个完整的正则解析规则不成?
解决方案三:
用正则太麻烦的话不行就换成string.IndexOf呗不是什么问题都必须用正则解决的
解决方案四:
stringpatten=Regex.Replace("BorlandC++",@"[\+?-.]",@"$0");patten=Regex.Replace(patten,@"^w","\b$0");Console.WriteLine(patten);patten=Regex.Replace(patten,@"w$","$0\b");Console.WriteLine(patten);Regexreg2=newRegex(patten);Console.WriteLine(reg2.IsMatch("thisisanBorlandC++project"));Console.Read();

这个肯定还是会有问题的

时间: 2024-10-23 22:35:24

正则表达式全词匹配的问题的相关文章

solr如何让全词匹配结果在最前面 部分匹配的在后面呢?

问题描述 solr如何让全词匹配结果在最前面 部分匹配的在后面呢? solr如何让全词匹配结果在最前面 部分匹配的在后面呢? 之前在讨论群里面有童鞋讨论说是将tf降为1,利用span检索,考虑offset因素. 但是不知道具体怎么配置和实现这个,请大家详细指导一下,谢谢. 解决方案 tf降为1可以看http://blog.csdn.net/xiaoyu714543065/article/details/11850087 重写打分机制

c-如何用C语言编写代码实现:文件中一行的开头是否与正则表达式^$w_ang[.* 相匹配

问题描述 如何用C语言编写代码实现:文件中一行的开头是否与正则表达式^$w_ang[.* 相匹配 如何用C语言编写代码实现:文件中一行的开头是否与正则表达式^$w_ang[.* 相匹配,,,怎么写代码啊,,求大神们指点,,万分感谢!!!! 解决方案 正则表达式应该可以看做是字符串匹配吧

正则表达式 html标签匹配

问题描述 正则表达式 html标签匹配 8C 有这样一段html标签<p style="""">aaa**<p>bbb</p>ccc<p>ddd</p>eee</p>**<p>ffff</p>我想最终得到的是第一行中从最开始p标签开始到最末端p标签结束,其中可能还包括多个成对出现的p标签例,但不包括下一行的p标签,应该怎样写呢?我这样写:<p.*?(<p>

正则去除所有匹配项-正则表达式替换所有匹配项

问题描述 正则表达式替换所有匹配项 var str= '[张三]asd[张三丰]'; function getStrLength(str) { var len = str.length; var reg = /([[u4E00-u9FA5]]{2,4})+$/; for (var i = 0; i < len; i++) { str.replace(reg,"1"); } return str.length; } 怎么把匹配到的张三.张三丰之类替换为字符'1' 解决方案 /**/

正则表达式是怎么匹配的

问题描述 正则表达式是怎么匹配的 求问匹配结果是怎么来的? 怎么匹配顺序得到的结果? String s="wangwu zhangsan lisi"; String reg=" ?";//"空格?" String[] result=s.split(reg); System.out.println(Arrays.toString(result)); 输出结果[w, a, n, g, w, u, , , , , z, h, a, n, g, s, a

javascript正则表达式之regexp,匹配string,正则指定字符

exec() 检索字符串中的指定值,返回值是被找到的值,如果没有发现匹配,则返回 null: 主要的RegExp模式匹配方法是exec(),其与上一篇介绍的String对象的match方法相似,只不过它是以字符串为参数的RegExp方法,而不是以RegExp对象为参数的字符串方法.呼,这一句有点像绕口令,没办法,书上的原话,抄过来让大家乐一乐,呵.exec()方法在一个字符串中检索匹配,如果没有找到任何匹配返回null,如果它找到了一个匹配,将返回一个数组. 就像方法match()为非全局检索返

正则表达式之 Unicode 匹配特殊字符_正则表达式

首先声明,本文所有的代码都是在 ES6 下面运行,ES5需要修改之后才能运行,但是本文没有涉及到太多的ES6新特性,而且由于v8对u修饰符不支持,最后的实现也基本是用ES5的知识写的代码. 最初我只是想记录下正则表达式用unicode的方式来匹配特殊字符,写着写着发现 v8 对 u 修饰符的不支持,又转而去研究怎么转换字符串到utf-16的格式,在研究怎么转换的过程中发现ES5的正则对 unicode 编码单元 > 0x10000 的字符串不支持,再转而去实现了一遍对大于 0x10000 的字符

VBS教程:正则表达式简介 -字符匹配_vbs

字符匹配 句点 (.) 匹配一个字符串中任何单个的打印或非打印字符,除了换行符 (\n) 之外.下面的 Visual Basic Scripting Edition 正则表达式可以匹配 'aac'.'abc'.'acc'.'adc'如此等等,同样也可以匹配 'a1c'.'a2c'.a-c'以及 a#c': /a.c/ 等价的 VBScript 正则表达式为: "a.c" 如果试图匹配一个包含文件名的字符串,其中句点 (.) 是输入字符串的一部分,则可以在正则表达式中的句点前面加上一个反

正则表达式实现最小匹配功能的方法

本文实例讲述了正则表达式实现最小匹配功能的方法.分享给大家供大家参考,具体如下: 正则表达式默认情况下实现的是最大化匹配,这在有些情况下是非常不愿意出现的,比如下面这段代码: # starting IndiaInventoryAPP.exe" ~~DisplayVariableValues "parameterGroup,mailRecipients,ModuleArgs"~DisplayVariableValues "LogFolder"~$binary