问正则表达式的问题!求解 VALUES (15, '13488221043');我想获得15 13488221043 这2个数字 正则表达式改如何写? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 是java的?? 还是js 的?? String str = "VALUES (15, '13488221043');"; Pattern patt = Pattern.compile(".+(\\d+)\\D+(\\d+).+");Matcher match = patt.matcher(str);System.out.println(match.group(1));System.out.println(match.group(2)); 当然,如果字符串格式比较死的话,也可以Pattern patt = Pattern.compile("VALUES \\((\\d+), '(\\d+)'\\);");Matcher match = patt.matcher(str);System.out.println(match.group(1));System.out.println(match.group(2)); System.out.println(match.group(1));捕获第一个正则表达式里面的括号里的表达式System.out.println(match.group(2));捕获第二个正则表达式里面的括号里的表达式其实可以直接这样写Pattern patt = Pattern.compile("\\d+");Matcher match = patt.matcher(str);while(match.find())System.out.println(match.group());就会匹配所有的数字类型的串 public class Regex { static final String regexStr = "VALUES [(]{1}[0-9]{1,4}, '[0-9]{11}'[)]{1}"; //static final String regexStr = ".+(\\d+)\\D+(\\d+).+"; public static void main(String args[]) throws IOException { Regex r = new Regex(); BufferedReader reader = new BufferedReader(new FileReader(new File("E:/data/20100318company_mo.sql"))); String string = null; while(reader.read()!=-1){ string = reader.readLine(); r.doRegex(Regex.regexStr,string); } } public void doRegex(String regexString,String string) { Pattern pattern = Pattern.compile(regexString); Matcher matcher = pattern.matcher(string); //System.out.println(matcher.groupCount()); while(matcher.find()) { String srcStr = matcher.group(); String printStr = srcStr.substring(8,srcStr.length()-1); System.out.println(printStr.replaceAll("'", " ").split(",")[0]); //将匹配的结果放入List } } 6楼的方法正解使用match.group()可以直接获取到这两个数值,不清楚8楼说的意思。 工作查LOG想做个工具自动找但是遇到难题求思路 类型转换问题 eclipse 我创建jsp文件 时为什么老是提示 the import java.util is never used 怎么实现可变变量? 考试中遇到的几个问题,挺郁闷的,解释不了。 我可不可以跳过本章,先学后面的知识?? java连接数据库的问题!! java程序执行时,引用类何时装载? 急!!!!!!!!!!!1急!!!!!!!!!!!!!!急!!!!!!!!!!!!!!急!!!!!!!!!!!! 请问如何把我的pc改造成server(从软硬件两面说) 关于对象实例化和引用问题。谢谢大家 java程序的内存结构是什么?
Pattern patt = Pattern.compile(".+(\\d+)\\D+(\\d+).+");
Matcher match = patt.matcher(str);
System.out.println(match.group(1));
System.out.println(match.group(2));
Pattern patt = Pattern.compile("VALUES \\((\\d+), '(\\d+)'\\);");
Matcher match = patt.matcher(str);
System.out.println(match.group(1));
System.out.println(match.group(2));
System.out.println(match.group(2));捕获第二个正则表达式里面的括号里的表达式
其实可以直接这样写
Pattern patt = Pattern.compile("\\d+");
Matcher match = patt.matcher(str);
while(match.find())
System.out.println(match.group());
就会匹配所有的数字类型的串
static final String regexStr = "VALUES [(]{1}[0-9]{1,4}, '[0-9]{11}'[)]{1}";
//static final String regexStr = ".+(\\d+)\\D+(\\d+).+";
public static void main(String args[]) throws IOException
{
Regex r = new Regex();
BufferedReader reader = new BufferedReader(new FileReader(new File("E:/data/20100318company_mo.sql")));
String string = null;
while(reader.read()!=-1){
string = reader.readLine();
r.doRegex(Regex.regexStr,string);
}
}
public void doRegex(String regexString,String string)
{
Pattern pattern = Pattern.compile(regexString);
Matcher matcher = pattern.matcher(string);
//System.out.println(matcher.groupCount());
while(matcher.find())
{
String srcStr = matcher.group();
String printStr = srcStr.substring(8,srcStr.length()-1);
System.out.println(printStr.replaceAll("'", " ").split(",")[0]); //将匹配的结果放入List
}
}
使用match.group()可以直接获取到这两个数值,不清楚8楼说的意思。