Pattern p = Pattern.compile("(\\D+线)\\d+开关");
String s = "华士线123开关";
Matcher m = p.matcher(s);
p(m.group(1));
我的目的是取出华士线三个字。
String s = "华士线123开关";
Matcher m = p.matcher(s);
p(m.group(1));
我的目的是取出华士线三个字。
解决方案 »
- 简单输出问题
- java 泛型的类型问题-迷惑吧,那就进来瞧瞧
- Arcims 为什么我的地图上的土层不会完全显示?只显示了一部分?
- 关于String的奇怪输出 toString的问题
- 关于两个类的创建的问题!
- ---> 100分 简直是送分! 在线等 !!我想在APPLET中实现多线程,遇到问题,帖代码求高人
- 数据库连接的问题
- 我学习java了一段时间,做了java bean的几个项目,都是bs的管理信息系统,想进一步学习java,请大虾们指点一条今后学习的路径。
- 请问github上的代码怎么转成myeclipse工程
- 请问:JCreator的调试工在哪里?
- 请大家帮我看看呀
- 有关GUI的一个问题
String s = "华士线123开关";
Matcher m = p.matcher(s);
if(m.find()) {
System.out.println(matcher.group(0));
}
"[\\u4E00-\\u9FA5]{2}[线]]"
String s = "华士线123开关";
Matcher m = p.matcher(s); m.find();
System.out.println(m.group(1));
Pattern p = Pattern.compile("(.+?线)\\d+开关");
String s = "华士线123开关";
Matcher m = p.matcher(s); m.find();
System.out.println(m.group(1));
}既然你用的是线前面的,那么用.+? 就好了, \D 是非数字,不一定适合所有情况,比如
天3-9线56开关
...
你又没有设置组怎么能m.group(1)呢?正则表达式大多数用在验证规则上,验证数据是否匹配。
你要实现只取出“华士线”三个字,用java.lang.String类的功能即可。
String s = "华士线123开关";
System.out.println(s.subSequence(0, 3));
http://topic.csdn.net/u/20081130/15/2ee11370-774f-4e7f-9700-d22116b2e2dd.html