正则表达试截取段数据输出问题

来源:百度知道 编辑:UC知道 时间:2024/06/30 02:48:14
我要从一堆数据中截取一段有规律的数据,现在用了JAVA的读写文件方法.当while ((tempString = reader.readLine()) != null) {
循环读一个文件的每一行的时候,我需要用一段表达是截取有规律的一行数据,表达市是^.*(1[0-9]{10}).* 据说加括号就是分组的意思.如何用JAVA实现呢?就是读取一段数据,写入到新文件去

不太明白你的意思。看你的正则,意思是这段数字以1开头,共有11位的数字。
写到新文件应该不成问题。所以,正则表达式匹配的吧。。。
这里的^是代表这穿字符的开头。。貌似不够有通用性。
我改了下,可以在一行,或者多行去匹配所有的数据。前提是1开头的11位数字
Pattern pa=Pattern.compile("[^1]*?(1[0-9]{10})");
while((tempString=reader.readLine())!=null){
Matcher ma=pa.matcher(tempString);
while(ma.find){
String result=ma.group(1);
把result存入文件
}
}
加括号有两种意思,一种就是这个了,可以通过group(1)这种形式取出相应的内容。第二种就是可以把一个字符串当作一个整体来处理。

比如说^1 这个代表的意思是不是1的字符 那么如果不想匹配的数字是123呢。 ^(123)就可以让你的匹配结果里面没有123.