正则表达式求助

Richard_00 2015-07-05 12:10:35

import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class RegexMatches
{
public static void main( String args[] ){

// 按指定模式在字符串查找
String line = "This order was placed for QT3000! OK?";
String pattern = "(.*)(\\d+)(.*)";

// 创建 Pattern 对象
Pattern r = Pattern.compile(pattern);

// 现在创建 matcher 对象
Matcher m = r.matcher(line);
if (m.find( )) {
System.out.println("Found value: " + m.group(0) );
System.out.println("Found value: " + m.group(1) );
System.out.println("Found value: " + m.group(2) );
} else {
System.out.println("NO MATCH");
}
}
}


以上实例编译运行结果如下:

Found value: This order was placed for QT3000! OK?
Found value: This order was placed for QT300
Found value: 0

运行结果跟我想的不一样。

这个模式String pattern = "(.*)(\\d+)(.*)";
共3个捕获组,但是捕获组序号从0开始还是从1开始?
到底是哪三个捕获组?
第0个是整个模式还是(.*)?
(\\d+)表示1个或多个数字,\d表示数字,可是\d前面的\是什么?
为什么结果的第二行是300不是3000?
为什么结果的第三行是0?
...全文
144 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
Inhibitory 2015-07-06
  • 打赏
  • 举报
回复
第0个是整个模式还是(.*)? 整个,所以从1开始取
夏日风帆 2015-07-06
  • 打赏
  • 举报
回复
引用 2 楼 Richard_00 的回复:
按照楼上提供的文章,(\\d+)里\d前的\还是说不清楚。 m.group(1) );对应的是第一个(.*),句点代表除\r\n以外的任意字符,我想还是会匹配整个字符串,为什么会匹配Found value: This order was placed for QT300?
楼主知道\d代表是数字是吧,,那么你不能直接写\d,而是需要将\这个符号表示出来,那么再加一个\就能表示出\,说以(\\d+)理解为\d+,
tony4geek 2015-07-06
  • 打赏
  • 举报
回复
String line = "This order was placed for QT3000! OK?"; String pattern = "(.*) (\\d+) (.*)";
Richard_00 2015-07-05
  • 打赏
  • 举报
回复
按照楼上提供的文章,(\\d+)里\d前的\还是说不清楚。 m.group(1) );对应的是第一个(.*),句点代表除\r\n以外的任意字符,我想还是会匹配整个字符串,为什么会匹配Found value: This order was placed for QT300?
Gyanxie 2015-07-05
  • 打赏
  • 举报
回复
关于group()的用法:http://winter8.iteye.com/blog/1463244
自己做网站的大致流程 一、 进入网站 (1) 注册 注册需要的信息: 用户名、常用的邮箱、密码、请再次输入密码 应实现的效果 :焦点离开编辑框就做验证 a、是否满足输入的格式(用正则表达式)b、注册的用户和邮箱是否已注册 c、在我要注册中同时也要做以上验证 d、两次输入的密码要一致 注册完了注意页面的切换 (2) 登陆 登陆需要的信息: 利用有户名或邮箱登陆 登录密码 应实现的效果:离开及判断数据库中用户是否存在 , 在登录中判断用户对应的密码是否正确 不正确弹出信息 应有密码找回超连接,进入个人空间 (对自己个人信息完善、已经发布的信息修改和完善) (3)个人信息完善 需要信息(有户名 ) 性别 生日(年月日) 居住地(省份城市) 个人手机号 QQ号 家庭座机 二、 个人对网站的一些功能 (1) 发布求助信息 A、只有个人资料填写比肩完善的用户才可以求助 在一周内允许发的发求助信息份数 B、快速发布 (减少点的次数) 一些信息不用再添直接读取 C、需要一个求助车用来自己要求助的可以先存入两外一数据库 D、考虑用在线文本编辑方式 传图片 E、求助物品分类用别人的 F、有一个信息查看功能,确认后才提交 三、 个人主页 显示个人资料 、便于管理 四、 网站首页 应做到提取一题目 和部分内容

62,615

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧