碰到的问题:
使用以中文开头以【4】结尾的正则表达式来选择文字差不多的字符串
代码:
package com.fw.regex;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class CnRegex {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
String str = "网元配套[5]";
String str1 = "网元配套[5]--admin--移动网元管理系统";
Pattern p = Pattern.compile("^[\u7f51\u5143][\u4e00-\u9fa5]+\\[\\d\\]{1}quot;);
Matcher m = p.matcher(str1);
System.out.println(m.matches());
test2();
test1();
}
public static void test2() {
// 中文内容也匹配
String pstr = "\"([^\"|[\u4e00-\u9fa5]]+)\"";
Pattern p = Pattern.compile(pstr);
Matcher m = p.matcher("\"goodjob里面有中文呢!\"");
System.out.println(m.find() ? m.group(1) : "nothing");
// 测试标点
m = p.matcher("\"goodjob还有标点!\"");
System.out.println(m.find() ? m.group(1) : "nothing");
}
public static void test1() {
// 匹配双引号间内容
String pstr = "\"([^\"]+)\"";
Pattern p = Pattern.compile(pstr);
Matcher m = p.matcher("\"goodjob\"");
System.out.println(m.find() ? m.group(1) : "nothing");
// 测试中文
m = p.matcher("\"goodjob里面有中文呢\"");
System.out.println(m.find() ? m.group(1) : "nothing");
}
}