问题: 匹配"联想 昭阳e280l"之中的"邵阳" (其中联想 邵阳之间含有(0-n个)空格)。
解决方案:
public class Question {
public static void main(String[] args) {
String regex="联想 昭阳e280l";
Pattern p=Pattern.compile("(?<=联想)\\s*([\u4e00-\u9fa5]*)\\w*");
Matcher m=p.matcher(regex);
System.out.println(m.find());
System.out.println(m.group(1));
}
}
说明:
(?<=exp)也叫零宽度正回顾后发断言,它断言自身出现的位置的前面能匹配表达
式exp。比如(?<=\bre)\w+\b会匹配以re开头的单词的后半部分(除了re以外的部分),
例如在查找reading a book时,它匹配ading
另外一种类似的匹配方式,本质上与上面一样。贴出代码只是想说说明分组的相关问题。
public static void main(String[] args) {
String regex="联想昭阳e280l";
// (联想)为第一组 ([\\u4e00-\\u9fa5]*)为第二组
Pattern p=Pattern.compile("(?<=(联想))\\s*([\\u4e00-\\u9fa5]*)(?=\\w+)");
Matcher m=p.matcher(regex);
while(m.find()){
int groupCount=m.groupCount();
System.out.println("groupCount:"+groupCount+"-->"+ m.group());
for(int i=1;i<=groupCount;i++){
System.out.println(m.group(i));
}
}
}
分享到:
相关推荐
本文写作时,一个包含了用正则表达式进行文本处理的Java规范需求(Specification Request)已经得到认可,你可以期待在JDK的下一版本中看到它。 然而,如果现在就需要使用正则表达式,又该怎么办呢?你可以从Apache...
Java正则表达式Java正则表达式Java正则表达式Java正则表达式
java,正则表达式,详解,java正则表达式,PDF
Java正则表达式 Java 正则表达式 图片版 携带方便,查阅方便!~
正则表达式之道.doc 正则表达式中的特殊字符.doc Java正则表达式详解.doc 正则表达式.ppt JAVA正则表达式--Pattern和Matcher.doc 例子
JAVA正则表达式应用:任意输入一串字符串 如何输入exit退出程序;从输入的字符串中判断是否包含手机号码 正则表达式可以使用" +86| 86 1 d{10}" 如果包含请将其在控制台打印出来 否则输出不包含字符串 ...
java正则表达式详解java正则表达式详解java正则表达式详解java正则表达式详解java正则表达式详解java正则表达式详解java正则表达式详解
java正则表达式验证IP地址
java使用正则表达式进行校验验证,主要使用了Pattern和Matcher类,直接main方法运行就可以,亲测有效
java正则表达式.pdfjava正则表达式.pdfjava正则表达式.pdfjava正则表达式.pdfjava正则表达式.pdf
Java正则表达式介绍和练习Java正则表达式介绍和练习Java正则表达式介绍和练习
Java正则表达式应用总结
java正则表达式 过滤特殊字符的正则表达式
Jva正则表达式Jva正则表达式Jva正则表达式Jva正则表达式Jva正则表达式
正则表达式的使用 java正则表达式的使用示例 java正则表达式
java正则表达式使用例子,代码是Android的
在学习完该教程后,应该对正则表达式有了初步的了解,并能熟练地运用 java.util.regex 包中的关于正则表达式的类库,为今后学习更高级的正则表达式技术奠定良好的基础。 教程中所有的源代码都在 src 目录下,可以...
正则表达式匹配工具很好很强大 放心使用 内附各种经典正则匹配公式
Java正则表达式详解.pdf Java正则表达式详解.pdf
java 验证手机号码 身份证 email url 以及其他常用的正则表达式的验证方法。