新手有关正则表达式的问题 1。在一个字符串里查找两边都是四个字母 中间是四个数字的字符串 输出的时候只输出中间的四个数字 前面的正则我会写 可是输出的时候只输出那四个数字 我不知道应该怎么输出。2。有参数的group和没有参数的group有啥区别?谢谢! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 UP~~~~小店开张,大量视频培训录像,欢迎大家过去踩踩~~购买多多,优惠多多!助你踏上成功之路,拥有这些资料,您必将事半功倍,详细请登陆:http://shop34555988.taobao.com import java.util.regex.*;public class Test { public static void main(String args[]) { Pattern p = Pattern.compile("[a-zA-Z]{4}(\\d{4})[a-zA-Z]{4}"); Matcher m = p.matcher("abcd1234hijk"); if(m.matches()) { System.out.println(m.group(1)); } else { System.out.println("Don't match."); } } } matcher.group() = matcher.group(0) 这个问题还是没有回答:有参数的group和没有参数的group有啥区别?看了星星的回答,又跑出来一个问题 那个find() 方法和matches方法有啥不同? 我是查了才上来问的 api根本看不懂 String s = "abcd3423defJ"; String regex = "(?<=[a-zA-Z]{4})\\d{4}(?=[a-zA-Z]{4})"; Pattern p = Pattern.compile(regex); Matcher m = p.matcher(s); while(m.find()){ System.out.println(m.group()); } matches是匹配整个串,find则不一定group的话跟正则式的括号有关,整个匹配的就是group(0),取其中一部份就是看括号的位置,比如楼上的group(1)(\\d{4})之所以要加括号就是为了下面输出 还有没有明白matches和find有啥区别 哪位好人写一个简单的例子让我看一下下他们的区别啊。。 str="abc"regex="\\w"find的话a、b、c都分别被匹配match的话,\\w不能匹配整个串"abc",所以matches返回false,\\w+这样才能match boolean find() Attempts to find the next subsequence of the input sequence that matches the pattern. boolean matches() Attempts to match the entire region against the pattern. 注意一个是subsequence,一个是entire region楼主要学会看api 又有问题了 如果我写str="1aa"regex="\\d\\w+"这个时候用find 能匹配的是哪些啊?是只有1aa还是什么? 晕了 j2se类型转换问题 TextField设为不可编辑后还可以选中界面的内容么? 如何理解设计模式 Adapter 如何用java语言编写应用程序模拟excel功能?急! 有去过北京达内公司培训的么?来谈谈感想 问个javadoc的问题?? 接口和抽象类的问题,请教大家 eclipse在mdk9.2下的运行 如何在写入文件时实现回车功能,即换行!多谢,一定给分。在线等待! 对象初始化的时候属性方法的加载顺序的问题,希望大神进来看一下 如何快速的将字符串"2x+5y=11"中的2,5,11取出来并转换成整形? 在JSP网页中 如何使用APPLET!
public static void main(String args[]) {
Pattern p = Pattern.compile("[a-zA-Z]{4}(\\d{4})[a-zA-Z]{4}");
Matcher m = p.matcher("abcd1234hijk");
if(m.matches()) {
System.out.println(m.group(1));
} else {
System.out.println("Don't match.");
}
}
}
看了星星的回答,又跑出来一个问题 那个find() 方法和matches方法有啥不同?
String regex = "(?<=[a-zA-Z]{4})\\d{4}(?=[a-zA-Z]{4})";
Pattern p = Pattern.compile(regex);
Matcher m = p.matcher(s);
while(m.find()){
System.out.println(m.group());
}
group的话跟正则式的括号有关,整个匹配的就是group(0),取其中一部份就是看括号的位置,比如楼上的group(1)
(\\d{4})之所以要加括号就是为了下面输出
regex="\\w"
find的话a、b、c都分别被匹配
match的话,\\w不能匹配整个串"abc",所以matches返回false,\\w+这样才能match
Attempts to find the next subsequence of the input sequence that matches the pattern. boolean matches()
Attempts to match the entire region against the pattern.
注意一个是subsequence,一个是entire region
楼主要学会看api
regex="\\d\\w+"这个时候用find 能匹配的是哪些啊?
是只有1aa还是什么? 晕了