请教个正则问题

问题描述

Stringa="C:\dd\hellokity\Desktop\20140808DLBANK\lianaCore\aa\lianaCore\c\lianaCore\";//Stringc="^.?:{1}(\\{1}(\w+[^(lianaCore|perbank)]))+(\\(lianaCore|perbank){1})*+";//Stringc="^.?:{1}(\\{1}(\w+)[^(lianaCore|perbank)])*";//Stringc="^.?:{1}(\\{1}(\w+)(?!.*(lianaCore|perbank)))*";Patternp=Pattern.compile(c);Matcherm=p.matcher(a);p(m.matches());m.reset();p(m.find());p(m.group(1));p(m.start()+"----"+m.end());如何用正则取出字符串a中从开始到第一个lianaCore或perbank间的字符串

解决方案

解决方案二:
Stringa="C:\dd\hellokity\Desktop\20140808DLBANK\lianaCore\aa\lianaCore\c\lianaCore\";Stringc="^(.*?)(lianaCore|perbank)";Patternp=Pattern.compile(c);Matcherm=p.matcher(a);if(m.find()){System.out.println(m.group(1));}

解决方案三:
谢谢ErorrStringa="C:\dd\hellokity\Desktop\20140808DLBANK\lianaCore\aa\lianaCore\c\lianaCore\";我用了这个Stringc="^[a-zA-Z]?:{1}(\\{1}(\w+)(?<!(lianaCore|perbank)))*";输出结果是C:ddhellokityDesktop20140808DLBANKlianaCor能不能改改达到二楼的效果
解决方案四:
Stringc="^[a-zA-Z]?:{1}(\\{1}(\w+).*?(lianaCore|perbank))";

解决方案五:
引用2楼tcamw_gcab的回复:

谢谢ErorrStringa="C:\dd\hellokity\Desktop\20140808DLBANK\lianaCore\aa\lianaCore\c\lianaCore\";我用了这个Stringc="^[a-zA-Z]?:{1}(\\{1}(\w+)(?<!(lianaCore|perbank)))*";输出结果是C:ddhellokityDesktop20140808DLBANKlianaCor能不能改改达到二楼的效果

直接1楼的很好的
解决方案六:
mark下,回头再看
解决方案七:
引用1楼Erorr的回复:

Stringa="C:\dd\hellokity\Desktop\20140808DLBANK\lianaCore\aa\lianaCore\c\lianaCore\";Stringc="^(.*?)(lianaCore|perbank)";Patternp=Pattern.compile(c);Matcherm=p.matcher(a);if(m.find()){System.out.println(m.group(1));}

谢谢,受用了,很好很强大,不过我想知道(.*?)这里*和?连在一起是什么意思啊,谢谢!!!
解决方案八:
引用6楼yankaiwuzhengbo的回复:

Quote: 引用1楼Erorr的回复:
Stringa="C:\dd\hellokity\Desktop\20140808DLBANK\lianaCore\aa\lianaCore\c\lianaCore\";Stringc="^(.*?)(lianaCore|perbank)";Patternp=Pattern.compile(c);Matcherm=p.matcher(a);if(m.find()){System.out.println(m.group(1));}

谢谢,受用了,很好很强大,不过我想知道(.*?)这里*和?连在一起是什么意思啊,谢谢!!!

*和+都是所谓的“贪婪型”元字符,它们在进行匹配时的行为模式是多多益善而不是适可而止的,所以它们会尽可能的从一段文本的开头一直匹配到这段文本的末尾,而不是从这段文本的开头匹配到碰到第一个匹配时为止。在不需要这种“贪婪行为”的时候,我们可以使用这些元字符的懒惰版本,懒惰型元字符的写法很简单,只要给贪婪型元字符加上一个?后缀即可。如下:*对应的懒惰型:*?+对应的懒惰型:+?意思就是找到第一个lianaCore|perbank就停止匹配啦~
解决方案九:
该回复于2014-09-22 08:47:53被版主删除

时间: 2024-09-14 05:37:52

请教个正则问题的相关文章

正则表达式-请教php正则匹配时斜杠或冒号引起的问题

问题描述 请教php正则匹配时斜杠或冒号引起的问题 preg_match_all(""/>[w+="".*""s]+</"" $xml $pre); 我用正则去匹配类似下面的字符串: src1=""111"" src2=""bb"" src3=""ccc"" 匹配结果是:>src1=&quo

请教如何正则提取html信息

问题描述 请教各位高手个问题,我想要提取HTML帖子内容,非常感谢ostrichmyself大哥帮我解决了好多问题,但是还在有些地方出问题,比较急所以再发帖求助@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@<pclass="author"><strong>admin</strong>发表于2009-5-1416:49</p><h3>提取帖子内容</h3>"提取这句话"<

正则表达式替换{}请教

问题描述 正则表达式替换{}请教 http://www.hao123.com/down.php?pid=4014&Id={a:0}&aaa={b:222}请教这种正则怎么替换? {a:0}替换成1,{b:222}替换成2 解决方案 $url="http://www.hao123.com/down.php?pid=4014&Id={kk:0}&aaa={b:222}"; $arr=array( 'kk'=>1, 'b' =>2, 'c' =&g

取图片路径的正则_正则表达式

请教个正则的问题 如何把 <img src="xxxx.jpg"> 的xxxx.jpg这段内容给取出来呀!!! <?php $str = "<img src='xxxx.jpg'>"; preg_match_all("/[^']*.jpg/",$str,$out); print_r($out[0][0]); ?>

取图片路径的正则

请教个正则的问题 如何把 <img src="xxxx.jpg"> 的xxxx.jpg这段内容给取出来呀!!!  <?php $str = "<img src='xxxx.jpg'>"; preg_match_all("/[^']*.jpg/",$str,$out); print_r($out[0][0]); ?>

php中如何用preg_match_all匹配字符串

问题描述 php中如何用preg_match_all匹配字符串 <div class="Wrapper"> <div class="colImg"> <a href="http://store.shopping.yahoo.co.jp/matsunami/fcdm3.html"></a> </div> <div class="wrCol cf"> <

JavaScript中常用的正则表达式日常整理(全)_正则表达式

//校验是否全由数字组成 function isDigit(s) { var patrn=/^[0-9]{1,20}$/; if (!patrn.exec(s)) return false return true } 匹配中文字符的正则表达式: [u4e00-u9fa5] 评注:匹配中文还真是个头疼的事,有了这个表达式就好办了 匹配双字节字符(包括汉字在内):[^x00-xff] 评注:可以用来计算字符串的长度(一个双字节字符长度计2,ASCII字符计1) 匹配空白行的正则表达式:ns*r 评注

我在c++里用regex,结果抛了异常,请教一下这段正则有问题吗

问题描述 我在c++里用regex,结果抛了异常,请教一下这段正则有问题吗 这一段是这样的,我不大清楚c++里哪些字符前面需要加转义符,所以感觉可能是这段正则本身错了,请教一下各位. const regex commonPattern(""(((<(!|/)?\w+( ((.|\n)*?"""")?)? *>)\W*(\w+)\W*((<(!|/)?\w+( ((.|\n)*?"""")?

请教一个string.replaceall正则问题

问题描述 有个url比如:http://test.com/test.do?aaa=1&bbb=234&ccc=567我现在要用string.replaceall把"&bbb=234"替换成空,怎么写正则,bbb参数名是已知的,后面的参数值未知,也就是长度未知,怎么通过正则替换呢?最后替换后的结果是http://test.com/test.do?aaa=1&ccc=567 解决方案 解决方案二:haveatryStrings="http://te