java中的正则表达式一些问题

Patternp=Pattern.compile("\\d{3,5}");Matcherm=p.matcher("123-12546-1234-12");p(m.matc... Pattern p=Pattern.compile("\\d{3,5}");
Matcher m=p.matcher("123-12546-1234-12");
p(m.matches());
这段代码怎么解释?
就是每一句话的意思
展开
 我来答
百度网友c86c594
2011-10-04 · TA获得超过111个赞
知道答主
回答量:117
采纳率:0%
帮助的人:68.1万
展开全部
Pattern p=Pattern.compile("\\d{3,5}");
定义一个表达式模式,’\‘表示下一个字符是特殊字符,'\d'表示数字既0-9,{3,5}表示重复3到5次
总的来看:匹配由3个到5个数字组成的字符串(例如”123“,”2345“等)。

Matcher m=p.matcher("123-12546-1234-12");
通过p和字符串"123-12546-1234-12"建立一个匹配器,Matcher类中有很多方法,完成各种需求。比如matches方法,这里matches方法返回false,因为字符串和模式并不匹配;这里的模式p匹配的是所有由3个到5个数字组成的字符串(例如“1234")。

p(m.matches());
这里有语法错误。matches是Matcher类的一个方法,返回一个Boolean值
(在这里将返回false)。
p(m.matches())==p(false)?????????没意义啊
Pike沐鑫
2011-10-04 · TA获得超过868个赞
知道小有建树答主
回答量:154
采纳率:0%
帮助的人:201万
展开全部
你好!很高兴为你解答。
首先给你讲解一些正则表达式的知识。
符号\d是特殊符号,等价的正则表达式为[0-9]
符号{3,5},表示匹配次数为3到5次
符号\,表示转义字符
小结:
\d不能单独使用,使用需配上\转义字符,所以出现\\d的情况
正则表达式:\\d{3,5}意思为匹配0-9这10个数字,需出现3-5字该集合中的数字
简而言之:就是例如1234则可以匹配到了,123也行 3456也行

其次,Pattern对象的public static Pattern compile(String regex)方法允许你把正则表达式编译成用来匹配的Pattern对象。
简而言之,就是把你的正则表达式编译

再次,Matcher对象根据Pattern对象和字符串进行匹配检查,就是利用matcher匹配123-12546-1234-12这串目标。

最后,我猜你是写错了,你可能想看匹配结果吧。Matcher对象的matches方法进行目标串的匹配,返回一个boolean类型的结果。

执行结果如下:
run:
false
true
成功生成(总时间:0 秒)

修改后源码:
/**
*
* @author yekeliang
*/
public class Main {

/**
* @param args the command line arguments
*/
public static void main(String[] args) {
Pattern p = Pattern.compile("\\d{3,5}");
Matcher m = p.matcher("123-12546-1234-12");
System.out.println(m.matches());
Matcher m2 = p.matcher("1234");
System.out.println(m2.matches());
}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式