标题:[求助]一道正则表达试的IO题
取消只看楼主
limaoyuan
Rank: 1
等 级:新手上路
帖 子:493
专家分:0
注 册:2006-6-25
 问题点数:0 回复次数:22 
[求助]一道正则表达试的IO题

将一个保存有ip地址与地区对照关系的文本文件导入到数据库时,应该将其中的某些空格替换成逗号(,),即对于如下格式的文本文件内容:
起始IP 结束IP 地区
---------------------------------------------------------------
61.54.231.245 61.54.231.245 河南省安阳市 新世纪网吧
61.54.231.246 61.54.231.246 河南省安阳市 未知地区
61.54.231.9 61.54.231.247 河南省安阳市 红日网吧
61.54.231.248 61.54.231.248 河南省安阳市 安阳师范学院
61.54.231.249 61.54.231.249 河南省安阳市 黑蜘蛛网吧(师范学院附近)
应转换成下面的这种格式:
61.54.231.245,61.54.231.245,河南省安阳市 新世纪网吧
61.54.231.246,61.54.231.246,河南省安阳市 未知地区
61.54.231.247,61.54.231.247,河南省安阳市 红日网吧
61.54.231.248,61.54.231.248,河南省安阳市 安阳师范学院
61.54.231.249,61.54.231.249,河南省安阳市 黑蜘蛛网吧(师范学院附近)

任务:阅读String.replaceAll方法的帮助,以及它提供的相关超链接,了解该方法的用法后,编写一个Java程序来自动实现上面的正则表达式替换替换后的结果保存到b.txt文件中。
select 地区 from ip表 where 用户ip>起始IP and 用户ip<结束ip
通过这条sql语句就可以查询出用户ip所对应的地区结果。由于用户ip与起始ip和结束ip的比较属于字符串比较,如果用户ip为9.1.1.1,那么它与61.54.231.245比较的结果就是前者大于后者,因为用户ip的第一个字符“9”大于61.54.231.245中的第一个字符“6”。
现在请你想出一种解决办法,让上面的sql语句能够返回正确结果。提示:将9.1.1.1变化成009.001.001.001后与061.054.231.245进行比较就可以了。
请按这种思路在你的程序中增加进行这种改变的正则表达式替换。注意,起始IP和结束IP的四个字段都有可能是1位、2位或3位数字,例如,61.5.23.1。


---------

求高手来写下代码.....或大概告诉我下如何写那句把空格换成逗号的 replaceAll( , )方法中的正则表达式~谢谢!

在线等解决...

搜索更多相关主题的帖子: 安阳市 河南省 正则 蜘蛛 数据库 
2007-01-30 12:43
limaoyuan
Rank: 1
等 级:新手上路
帖 子:493
专家分:0
注 册:2006-6-25
得分:0 

61.54.231.245 61.54.231.245 河南省安阳市 新世纪网吧
应转换成下面的这种格式:
61.54.231.245,61.54.231.245,河南省安阳市 新世纪网吧
上面这里保持空格但不加逗号

不行的..改变后的地址中的空格不加逗号
还有就是二个IP地址之间的空格不一定是一个

61.51.22.2 61.51.22.2 北京
最后不是三位数的IP与下一个IP之间会有多个空格
61.33.22.222 61.33.22.222 中国
最后是三位数的IP与下面一IP之间有一个空格



我在说's blog   http://www..cn
2007-01-30 13:35
limaoyuan
Rank: 1
等 级:新手上路
帖 子:493
专家分:0
注 册:2006-6-25
得分:0 
编写的加逗号的方法要匹配如下所示的IP,并要用replaceAll方法来实现

61.146.117.78 61.146.117.78 广东省河源市 龙川E时代网络中心
61.146.117.79 61.146.117.98 广东省河源市 (龙川/紫金)
61.146.117.99 61.146.117.165 广东省河源市连平县 寰宇网吧
61.146.117.166 61.146.117.166 广东省河源市连平县 天慧网吧
61.146.117.167 61.146.117.177 广东省河源市连平县 寰宇网吧
61.146.117.178 61.146.117.178 广东省河源市连平县 康乐网吧
61.146.117.179 61.146.117.185 广东省河源市连平县 寰宇网吧
61.146.117.186 61.146.117.186 广东省河源市连平县 连平县中信
61.146.117.187 61.146.117.189 广东省河源市连平县 寰宇网吧
61.146.117.190 61.146.117.190 广东省河源市连平县 中信
61.146.117.191 61.146.117.200 广东省河源市连平县 寰宇网吧
61.146.117.201 61.146.117.225 广东省河源市 (龙川/紫金)
61.146.117.226 61.146.117.226 广东省河源市连平县 康乐网吧
61.146.117.227 61.146.117.241 广东省河源市 (龙川/紫金)
61.146.117.242 61.146.117.242 广东省河源市龙川县 老隆镇新辉网吧
61.146.117.243 61.146.118.49 广东省河源市 (龙川/紫金)
61.146.118.50 61.146.118.70 广东省河源市 新星网吧
61.146.118.71 61.146.118.91 广东省河源市 (龙川/紫金)
61.146.118.92 61.146.118.92 广东省河源市 龙翔网吧
61.146.118.93 61.146.118.204 广东省河源市 (龙川/紫金)
61.146.118.205 61.146.118.205 广东省河源市 三友对面雅吧
61.146.118.206 61.146.119.97 广东省河源市 (龙川/紫金)
61.146.119.98 61.146.119.98 广东省河源市 龙川县老隆镇冲浪网吧
61.146.119.99 61.146.119.101 广东省河源市 (龙川/紫金)
61.146.119.102 61.146.119.102 广东省河源市 紫荆网吧
61.146.119.103 61.146.119.105 广东省河源市 (龙川/紫金)
61.146.119.106 61.146.119.106 广东省河源市 紫金县杰才网吧
61.146.119.107 61.146.119.121 广东省河源市 (龙川/紫金)
61.146.119.122 61.146.119.122 广东省河源市和平县 飞风桥星星网吧
61.146.119.123 61.146.119.125 广东省河源市 (龙川/紫金)
61.146.119.126 61.146.119.126 广东省河源市和平县 星期网吧
61.146.119.127 61.146.119.159 广东省河源市 (龙川/紫金)
61.146.119.160 61.146.119.194 广东省河源市 新江路新江网吧
61.146.119.195 61.146.119.200 广东省河源市 恒美网吧
61.146.119.201 61.146.119.255 广东省河源市 (龙川/紫金)
61.146.120.0 61.146.127.255 广东省揭阳市 (揭东/揭西/普宁)
61.146.128.0 61.146.138.161 广东省清远市 未知地区
61.146.138.162 61.146.138.162 广东省潮州市 夫马网吧(潮州大厦对面)
61.146.138.163 61.146.139.125 广东省清远市 未知地区
61.146.139.126 61.146.139.126 广东省英德市 含光益智网吧
61.146.139.127 61.146.139.161 广东省清远市 未知地区
61.146.139.162 61.146.139.162 广东省英德市 KK网吧A1
61.146.139.163 61.146.139.163 广东省清远市 未知地区
61.146.139.164 61.146.139.164 广东省英德市 KK网吧A3
61.146.139.165 61.146.139.167 广东省清远市 未知地区
61.146.139.168 61.146.139.168 广东省英德市 KK网吧
61.146.139.169 61.146.139.169 广东省英德市 KK网吧B2
61.146.139.170 61.146.139.174 广东省清远市 未知地区
61.146.139.175 61.146.139.175 广东省英德市 KK网吧B3/B1
61.146.139.176 61.146.139.176 广东省英德市 KK网吧C1
61.146.139.177 61.146.139.180 广东省清远市 未知地区
61.146.139.181 61.146.139.181 广东省英德市 KK网吧D1
61.146.139.182 61.146.139.182 广东省英德市 KK网吧D2
61.146.139.183 61.146.141.30 广东省清远市 电信
61.146.141.31 61.146.141.31 广东省清远市 附城电大
61.146.141.32 61.146.143.255 广东省清远市 电信
61.146.144.0 61.146.147.255 广东省汕尾市 电信
61.146.148.0 61.146.148.255 广东省汕尾市 海陆丰地区拨号
61.146.149.0 61.146.150.255 广东省汕尾市 电信
61.146.151.0 61.146.151.255 广东省汕尾市 海陆丰地区ADSL
61.146.152.0 61.146.152.255 广东省云浮市 电信
61.146.153.0 61.146.155.255 广东省云浮市 /罗定市
61.146.156.0 61.146.159.255 广东省云浮市 电信
61.146.160.0 61.146.163.63 广东省梅州市 电信
61.146.163.64 61.146.163.64 广东省梅州市五华县 随缘网吧
61.146.163.65 61.146.164.116 广东省梅州市 电信
61.146.164.117 61.146.164.117 广东省梅州市 卫生学校
61.146.164.118 61.146.166.255 广东省梅州市 电信
61.146.167.0 61.146.168.255 广东省梅州市五华县 电信
61.146.169.0 61.146.184.255 广东省梅州市 电信
61.146.185.0 61.146.186.255 广东省梅州市五华县 电信
61.146.187.0 61.146.187.255 广东省梅州市 电信
61.146.188.0 61.146.188.255 广东省兴宁市 电信
61.146.189.0 61.146.190.86 广东省梅州市 电信
61.146.190.87 61.146.190.87 广东省梅州市 鸿都大厦
61.146.190.88 61.146.190.255 广东省梅州市 电信
61.146.191.0 61.146.192.255 广东省韶关市 电信
61.146.193.0 61.146.193.13 广东省韶关市乐昌市 电信
61.146.193.14 61.146.193.15 广东技术师范学院 天河学院
61.146.193.16 61.146.193.255 广东省韶关市乐昌市 电信
61.146.194.0 61.146.206.255 广东省韶关市 电信
61.146.207.0 61.146.210.99 广东省肇庆市 电信
61.146.210.100 61.146.210.100 广东省肇庆市端州区 广宁牛牛网吧网吧
61.146.210.101 61.146.211.194 广东省肇庆市 电信
61.146.211.195 61.146.211.195 广东省肇庆市端州区 广宁新达网吧
61.146.211.196 61.146.211.225 广东省肇庆市 电信
61.146.211.226 61.146.211.226 广东省肇庆市端州区 广宁盈动网吧
61.146.211.227 61.146.212.7 广东省肇庆市 电信
61.146.212.8 61.146.212.8 广东省肇庆市端州区 广宁智力网吧网吧
61.146.212.9 61.146.215.255 广东省肇庆市 电信
61.146.216.0 61.146.217.255 广东省肇庆市 (端州区/德庆县/四会)ADSL
61.146.218.0 61.146.223.255 广东省肇庆市 电信ADSL
61.146.224.0 61.146.225.255 广东省茂名市 电信
61.146.226.0 61.146.226.255 广东省茂名市 电信拨号
61.146.227.0 61.146.228.1 广东省茂名市 电信
61.146.228.2 61.146.228.2 广东省茂名市 星梦网吧
61.146.228.3 61.146.233.1 广东省茂名市 未知地区
61.146.233.2 61.146.233.8 广东省茂名市 星梦网吧
61.146.233.9 61.146.233.74 广东省茂名市 未知地区
61.146.233.75 61.146.233.75 广东省茂名市 寰宇网吧(计星路)
61.146.233.76 61.146.233.80 广东省茂名市 未知地区
61.146.233.81 61.146.233.85 广东省茂名市化州市 河东区桔城路丝绸大厦首层金都网吧
61.146.233.86 61.146.233.89 广东省茂名市 未知地区
61.146.233.90 61.146.233.90 广东省茂名市 高州梦工场网吧
61.146.233.91 61.146.233.97 广东省茂名市 未知地区
61.146.233.98 61.146.233.98 广东省茂名市化州市 世界通网吧
61.146.233.99 61.146.233.129 广东省茂名市 未知地区
61.146.233.130 61.146.233.130 广东省茂名市 信宜市太平洋网吧
61.146.233.131 61.146.233.153 广东省茂名市 未知地区
61.146.233.154 61.146.233.154 广东省茂名市 环球网吧
61.146.233.155 61.146.233.155 广东省茂名市 未知地区
61.146.233.156 61.146.233.156 广东省茂名市 环球网吧
61.146.233.157 61.146.233.201 广东省茂名市 未知地区
61.146.233.202 61.146.233.202 广东省茂名市 电白县水东镇心语网吧
61.146.233.203 61.146.233.218 广东省茂名市 未知地区
61.146.233.219 61.146.233.219 广东省茂名市 水东镇玩家网吧
61.146.233.220 61.146.233.220 广东省茂名市 水东玩家网吧
61.146.233.221 61.146.233.221 广东省茂名市 水东梦幻网吧
61.146.233.222 61.146.233.234 广东省茂名市 未知地区
61.146.233.235 61.146.233.235 广东省茂名市 高州一网网吧
61.146.233.236 61.146.233.241 广东省茂名市 未知地区
61.146.233.242 61.146.233.242 广东省茂名市 水东镇新时空网吧
61.146.233.243 61.146.233.249 广东省茂名市 未知地区
61.146.233.250 61.146.233.250 广东省茂名市高州市 石鼓新星网吧
61.146.233.251 61.146.234.5 广东省茂名市 未知地区
61.146.234.6 61.146.234.6 广东省茂名市 英捷网吧
61.146.234.7 61.146.234.37 广东省茂名市 未知地区
61.146.234.38 61.146.234.38 广东省茂名市 科海网吧
61.146.234.39 61.146.234.47 广东省茂名市 未知地区
61.146.234.48 61.146.234.48 广东省茂名市 轻松网吧
61.146.234.49 61.146.234.95 广东省茂名市 未知地区
61.146.234.96 61.146.234.97 广东省茂名市化州市 上佳网吧
61.146.234.98 61.146.234.111 广东省茂名市 未知地区
61.146.234.112 61.146.234.112 广东省茂名市 英捷网吧
61.146.234.113 61.146.234.118 广东省茂名市 未知地区
61.146.234.119 61.146.234.119 广东省茂名市 轻松网吧
61.146.234.120 61.146.234.120 广东省茂名市 信宜轻松网吧
61.146.234.121 61.146.234.217 广东省茂名市 未知地区
61.146.234.218 61.146.234.218 广东省茂名市 黄金网吧
61.146.234.219 61.146.234.249 广东省茂名市 未知地区
61.146.234.250 61.146.234.250 广东省茂名市高州市 石鼓新星网吧
61.146.234.251 61.146.236.42 广东省茂名市 未知地区
61.146.236.43 61.146.236.43 广东省茂名市 水东网谊网吧
61.146.236.44 61.146.236.97 广东省茂名市 未知地区
61.146.236.98 61.146.236.98 广东省茂名市 高州新一族网吧
61.146.236.99 61.146.236.165 广东省茂名市 未知地区
61.146.236.166 61.146.236.166 广东省茂名市高州市 绿苗网吧
61.146.236.167 61.146.236.225 广东省茂名市 未知地区
61.146.236.226 61.146.236.226 广东省茂名市高州市 绿岛网吧
61.146.236.227 61.146.237.13 广东省茂名市 未知地区
61.146.237.14 61.146.237.14 广东省茂名市高州市 星月网吧
61.146.237.15 61.146.237.17 广东省茂名市 未知地区
61.146.237.18 61.146.237.18 广东省茂名市 战国风云网吧
61.146.237.19 61.146.237.53 广东省茂名市 未知地区
61.146.237.54 61.146.237.54 广东省茂名市 地球村网吧
61.146.237.55 61.146.237.57 广东省茂名市 未知地区
61.146.237.58 61.146.237.58 广东省茂名市高州市 新干线网吧
61.146.237.59 61.146.237.59 广东省茂名市高州市 黑网网吧
61.146.237.60 61.146.237.73 广东省茂名市 未知地区
61.146.237.74 61.146.237.74 广东省茂名市高州市 冲击波网吧
61.146.237.75 61.146.237.82 广东省茂名市 未知地区
61.146.237.83 61.146.237.83 广东省茂名市高州市 开心网吧
61.146.237.84 61.146.237.89 广东省茂名市 未知地区
61.146.237.90 61.146.237.90 广东省茂名市 姐妹网吧
61.146.237.91 61.146.237.113 广东省茂名市 未知地区
61.146.237.114 61.146.237.114 广东省茂名市化州市 海云边网吧
61.146.237.115 61.146.237.124 广东省茂名市 未知地区
61.146.237.125 61.146.237.125 广东省茂名市 新概念网吧
61.146.237.126 61.146.237.145 广东省茂名市 未知地区
61.146.237.146 61.146.237.146 广东省茂名市高州市 冲浪网吧
61.146.237.147 61.146.237.181 广东省茂名市 未知地区
61.146.237.182 61.146.237.182 广东省茂名市 水东嘉乐网吧
61.146.237.183 61.146.237.221 广东省茂名市 未知地区
61.146.237.222 61.146.237.222 广东省茂名市 高州极速网吧

我在说's blog   http://www..cn
2007-01-30 13:42
limaoyuan
Rank: 1
等 级:新手上路
帖 子:493
专家分:0
注 册:2006-6-25
得分:0 
以下是引用喃瑟在2007-1-30 13:42:27的发言:
先转成061.051.022.002 061.051.022.002在加逗号不就可以了吗?

不可以吧,因为他后面的二段地址之间的空格不加逗号,转成带三位三位的IP后该如何把整句除最后地址之间全加上逗号呢?


我在说's blog   http://www..cn
2007-01-30 13:45
limaoyuan
Rank: 1
等 级:新手上路
帖 子:493
专家分:0
注 册:2006-6-25
得分:0 
以下是引用limaoyuan在2007-1-30 13:35:02的发言:

61.54.231.245 61.54.231.245 河南省安阳市 新世纪网吧
应转换成下面的这种格式:
61.54.231.245,61.54.231.245,河南省安阳市 新世纪网吧
上面这里保持空格但不加逗号

红色的部分


我在说's blog   http://www..cn
2007-01-30 13:51
limaoyuan
Rank: 1
等 级:新手上路
帖 子:493
专家分:0
注 册:2006-6-25
得分:0 

好,明白了..
\\d\\s+ 这句非常适用..我怎么想不到呢.

s=s.replaceAll(temp,temp.trim()+",");
这句我有点儿不明白..temp.trim()不是返回不包含空格的其它字符吗?这样的意思是说把空格去掉并把 空格处换成逗号吗?


我在说's blog   http://www..cn
2007-01-30 14:04
limaoyuan
Rank: 1
等 级:新手上路
帖 子:493
专家分:0
注 册:2006-6-25
得分:0 

谢谢千里,我能看明白了.....


我在说's blog   http://www..cn
2007-01-30 14:12
limaoyuan
Rank: 1
等 级:新手上路
帖 子:493
专家分:0
注 册:2006-6-25
得分:0 
以下是引用千里冰封在2007-1-30 13:55:20的发言:
[CODE]String s="61.54.231.245 61.54.231.245 河南省安阳市 新世纪网吧 ";
Matcher m=Pattern.compile("\\d\\s+").matcher(s);
while(m.find()){
String temp=m.group();
s=s.replaceAll(temp,temp.trim()+",");
}
System.out.println(s);[/CODE]

看看这个,它可以实现

千里代码有问题了.您给我的这个方法可以按要求分开一部分,
但不知道为什么,同样的格式的字符串,同样的分割要求,有的用这个方法就不能按要求分好~

读这个文件:

wkfWdMuC.rar (47.55 KB) [求助]一道正则表达试的IO题


里面全是格式类似为: 61.54.231.248 61.54.231.248 河南省安阳市 安阳师范学院
但有的可以正确转换有的就不成....麻烦帮忙再看下好吗?我真是找不出问题...


文件Test8.java
-----------------------------------------------------------------
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class Test8
{
public static void main(String[] args)
{
FileInput in = new FileInput("d:\\a.txt","d:\\cc.txt");
in.read();
}
}
class FileInput
{
private BufferedReader br;
private BufferedWriter bw;
public FileInput(String fileName,String outFileName)
{
try
{
br = new BufferedReader(new FileReader(fileName));
bw = new BufferedWriter(new FileWriter(outFileName));
}
catch (FileNotFoundException e)
{
e.printStackTrace();
}
catch (IOException e)
{
e.printStackTrace();
}
}

public void read() //读文件
{
String strIn;
try
{
while((strIn = br.readLine())!=null)
{
Matcher m = Pattern.compile("\\d\\s+").matcher(strIn);
if(m.find())
{
String out = m.group();
strIn = strIn.replaceAll(out,out.trim()+",");
System.out.println(strIn);
// toFormatIp(strIn);
write(strIn);
}
}
}
catch (IOException e)
{
e.printStackTrace();
}
}

public void write(String str) //写入文件
{
try
{
bw.write(str);
bw.newLine();

bw.flush();
}
catch(IOException ioe)
{
ioe.printStackTrace();
}
}
}



我在说's blog   http://www..cn
2007-01-30 21:06
limaoyuan
Rank: 1
等 级:新手上路
帖 子:493
专家分:0
注 册:2006-6-25
得分:0 

是的呀..你试下这个程序,运行都没问题,就是偏偏有的格式加不上逗号....

我也看不出为什么,所以再来请教你..


我在说's blog   http://www..cn
2007-01-30 22:21
limaoyuan
Rank: 1
等 级:新手上路
帖 子:493
专家分:0
注 册:2006-6-25
得分:0 

我去洗脸了先..有回复的,我先感谢了...


我在说's blog   http://www..cn
2007-01-30 22:26



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-118845-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.063734 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved