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());
这段代码怎么解释?
就是每一句话的意思 展开
Matcher m=p.matcher("123-12546-1234-12");
p(m.matches());
这段代码怎么解释?
就是每一句话的意思 展开
2个回答
展开全部
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)?????????没意义啊
定义一个表达式模式,’\‘表示下一个字符是特殊字符,'\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)?????????没意义啊
展开全部
你好!很高兴为你解答。
首先给你讲解一些正则表达式的知识。
符号\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());
}
}
首先给你讲解一些正则表达式的知识。
符号\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());
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询