关于一个正则表达式的问题?

问题描述

publicclassTest{publicstaticvoidmain(String[]args){Patternp=Pattern.compile("^s[\d]{3}m$");Matcherm=p.matcher("<P>s123m</P>");while(m.find()){System.out.println(m.group());}}}为什么这个程序抓不出来?但是吧开头的^和结尾的$去掉就可以抓出来了。有人能帮忙解释下吗?

解决方案

解决方案二:
边界匹配器^行的开头$行的结尾你都看下api啊你这个正则的意思是必须以s开通m结尾懂了吧
解决方案三:
我当然知道。。。。但是我正则式写对了但是没取出来你说是为什么|?
解决方案四:
引用2楼solly0880的回复:

我当然知道。。。。但是我正则式写对了但是没取出来你说是为什么|?

不明白你意思你问问题自己都没搞清楚。。。
解决方案五:
引用2楼solly0880的回复:

我当然知道。。。。但是我正则式写对了但是没取出来你说是为什么|?

Matcherm=p.matcher("<P>s123m</P>");你这个字符串明显就不是以s开头且以m结尾的嘛你是<开头>结尾的,所以没有匹配到,当然没有结果楼上的说的得清楚,你也说知道,怎么还会不理解哩
解决方案六:
Matcherm=p.matcher("s123m</P>");这样就匹配了
解决方案七:
publicclassRegexTest{publicstaticvoidmain(String[]args){Stringstr="<P>s123m</P>";Patternpattern=Pattern.compile("[^</?p>](\w+)",Pattern.CASE_INSENSITIVE);Matcherma=pattern.matcher(str);if(ma.find()){System.out.println(ma.group());}}}

解决方案八:
引用2楼solly0880的回复:

我当然知道。。。。但是我正则式写对了但是没取出来你说是为什么|?

因为你没有写对,呵呵("<P>s123m</P>")匹配中间的s123m是不是;用两个断言就可以(?<=<P>)\w*\s*(?=</P>);//断言一个位置前面是<P>然后在这个位置跟着\w*\s*然后之后的位置得后面是一个</P>

解决方案九:
引用7楼viszl的回复:

引用2楼solly0880的回复:我当然知道。。。。但是我正则式写对了但是没取出来你说是为什么|?因为你没有写对,呵呵Javacode("<P>s123m</P>")匹配中间的s123m是不是;用两个断言就可以(?<=<P>)\w*\s*(?=</P>);//断言一个位置前面是<P>然后在这个位置跟着\w*\s*然后之后的位置得后面是一个</P>

这个应该不对吧,“?<=”匹配的是缝隙前的,"?="匹配的是缝隙后的
解决方案十:
引用8楼closewbq的回复:

这个应该不对吧,“?<=”匹配的是缝隙前的,"?="匹配的是缝隙后的

哪里不对啊,分别断言s123m前面和后面的两个位置。刚才测试了一下,正常

时间: 2024-11-05 16:38:45

关于一个正则表达式的问题?的相关文章

请问一个正则表达式

问题描述 路过的大侠们,麻烦帮忙支个招(没分了... ):写一个正则表达式:1.字符串不能以空格开头.结尾2.中间不能有字符:<>我写了个正则表达式:/(^[^<>s]$)|(^(?!s)([^<>]+?)([^s])$)/但是,这个表达式有一种情况不能满足,即,以<>结尾,非空格开头,例如:1<对正则表达式不了解,搞了半天没弄出来,麻烦大侠们帮忙弄弄..../////////////////////////////////////////弄好了...

求一个正则表达式,在线等.

问题描述 求一个正则表达式,在线等. 求一个正则表达式,不能包含"-"和"."这两个符号.(字数字数字数字数字数字数,字数字数字数字数) 解决方案 var reg=new Regex(@"^[^.-]+$"); bool Ischeck= reg.IsMatch(i); 解决方案二: [^-^.]+ 解决方案三: [^-.] 解决方案四: 怎么丢字符了,按老曹caozhy那个就行 解决方案五: 从你的描述来看,应该是用来验证字符格式的,所以要加

wwinfrom 为Url写一个正则表达式 要求输入地址做判断

问题描述 wwinfrom 为Url写一个正则表达式 要求输入地址做判断 在一个文本框内要求 输入一个地址 要求可以这样 http://www.xxx.com http://www.xxx.cn http://192.168.xx.xx/load/xxx.html 解决方案 http://[a-zA-Z.0-9/-_]+ 解决方案二: 一个URL正则表达式

js 求帮忙写一个正则表达式 要求只能输入 数字英文和汉字的 其他的一律不能输入

问题描述 js 求帮忙写一个正则表达式 要求只能输入 数字英文和汉字的 其他的一律不能输入 js 求帮忙写一个正则表达式 要求只能输入 数字英文和汉字的 其他的一律不能输入 解决方案 [d|A-z|u4E00-u9FFF]+这个可以匹配简繁中文和任意数字以及字母. 解决方案二: 网上找的,试一下行不行 ^[u4E00-u9FA5A-Za-z0-9]+$ 解决方案三: 我试了一下可以啊 <input id=""a"" type=""text&

求一个正则表达式验证登录账号密码格式的~~多谢啦~~~~~~~~~~~~~~~~~

问题描述 求一个正则表达式验证登录账号密码格式的~~多谢啦~~~~~~~~~~~~~~~~~ 用户.管理员.特殊账号设置密码必须强制符合以下要求:1. 不能包含用户名2. 密码内容必须包含以下元素中的3种:? 英文大写字母(A -- Z)? 英文小写字母 (a -- z)? 数字r (0 -- 9)? 特殊字符 多谢啦~~我参考别人写的,满足不了上面的需求,,谢谢啦~^(?![a-zA-Z0-9]+$)(?![^a-zA-Z/D]+$)(?![^0-9/D]+$).{820}$ 解决方案 (?=

正则表达式 jsp-求助写一个正则表达式

问题描述 求助写一个正则表达式 1 ROOT单词开头,后面的可以使数字或字母 2 总体长度为7 例如:ROOT1 ROOT2 ROOTa ROOT12等等 解决方案 ^ROOT[0-9A-Za-z]{3}

求一个正则表达式(要求字符串长度6到12位,必须包含数字和字母,在此基础上可以包含其他任意字符)

问题描述 求一个正则表达式(要求字符串长度6到12位,必须包含数字和字母,在此基础上可以包含其他任意字符) (要求字符串长度6到12位,必须包含数字和字母,在此基础上可以包含其他任意字符) 解决方案 ^(?![^a-zA-Z]+$)(?!D+$).{6,12}$

求大神帮忙写一个正则表达式php过滤编辑器的新闻内容

问题描述 求大神帮忙写一个正则表达式php过滤编辑器的新闻内容 从网站A数据库中读取的新闻内容(HTML源码格式)写入网站B的新闻表中,格式不统一,而且有很多冗余代码,很多是从office复制过去的,需要过滤掉网站A新闻内容中冗余的HTML代码.新闻内容在php的$NEWS字段中,给这个字段用正则表达式处理一下. 具体的代码说明写了个网页,方便大神看求助写正则表达式 后面是php连接查询的代码,方便大神测试,数据库mysql,表是editor,两个字段ID(INIT)和news(MEDIUMTE

求一个正则表达式。要求:最多两个小数点,必须大于零,是浮点型

问题描述 求一个正则表达式.要求:最多两个小数点,必须大于零,是浮点型 解决方案 解决方案二:验证数字的正则表达式集验证数字:^[0-9]*$验证n位的数字:^d{n}$验证至少n位数字:^d{n,}$验证m-n位的数字:^d{m,n}$验证零和非零开头的数字:^(0|[1-9][0-9]*)$验证有两位小数的正实数:^[0-9]+(.[0-9]{2})?$验证有1-3位小数的正实数:^[0-9]+(.[0-9]{1,3})?$验证非零的正整数:^+?[1-9][0-9]*$验证非零的负整数:^

正则验证-一个正则表达式的问题

问题描述 一个正则表达式的问题 对于正则表达式[a-z&&[hij]],网上查到的资料,它表示"hij中的一个(交集)",表示"h,i,j中的任一个"不是直接[hij]就好了?谁能告诉我"hij中的一个(交集)"的具体含义,给出一些匹配串的例子?感激不尽. 解决方案 1.不是所有语言的正则引擎都可以在正则中求交集的2.表示"h,i,j中的任一个 -> [hij],你是对的3.谁能告诉我"hij中的一个(交