把61.54.231.245 61.54.231.245 河南省安阳市 新世纪网吧
61.54.231.246 61.54.231.246 河南省安阳市 未知地区 替换成061.054.231.245,061.054.231.245,河南省安阳市 新世纪网吧
061.054.231.246,061.054.231.246,河南省安阳市 未知地区每个IP地址不足3位的前面补0..谁能帮忙用正则表达式实现这个功能?
61.54.231.246 61.54.231.246 河南省安阳市 未知地区 替换成061.054.231.245,061.054.231.245,河南省安阳市 新世纪网吧
061.054.231.246,061.054.231.246,河南省安阳市 未知地区每个IP地址不足3位的前面补0..谁能帮忙用正则表达式实现这个功能?
public static void main(String[] args) {
String in = "61.54.231.245 61.54.231.245 河南省安阳市 新世纪网吧";
String[] ss1 = in.split(" ");
String out = "";
for (int i = 0; i < 2 ; i++) {
String[] ss2 = ss1[i].split("\\.");
for (int n = 0; n < 4; n++) {
switch (ss2[n].length()) {
case 1:
out += "0";
case 2:
out += "0";
default:
out += ss2[n];
}
if (n < 3)
out += ".";
}
out += " ";
}
out += ss1[2];
out += " " + ss1[3];
System.out.println(in);
System.out.println(out);
}
}
import java.util.Iterator;
import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;public class IPFormater { public static void main(String[] args) { String[] ss = new String[] { //
"61.54.231.245 61.54.231.245 河南省安阳市 新世纪网吧", //
"61.54.231.246 61.54.231.246 河南省安阳市 未知地区", //
"", //
"", // }; List results = processBit(ss);
for (Iterator it = results.iterator(); it.hasNext(); System.out.println(it.next()))
; System.out.println("\n\n\n"); results = processBlank((String[]) results.toArray(SS_BLANK));
for (Iterator it = results.iterator(); it.hasNext(); System.out.println(it.next()))
; System.out.println("\n\n\n"); ss = format(ss);
for (int i = 0; i < ss.length; System.out.println(ss[i]), i++)
;
} //
//
//
private static final String[] SS_BLANK = new String[] {}; private static final Pattern PATTERN_FOR_BIT = Pattern.compile("[^\\d][\\d]{3}|[^\\d][\\d]{1,2}"); private static final Pattern PATTERN_FOR_BLANK = Pattern.compile("([\\d]{3})[\\s]"); public static final String[] format(String[] ss) {
List results = processBit(ss);
results = processBlank((String[]) results.toArray(ss)); return (String[]) results.toArray(SS_BLANK);
} private static List processBit(String[] ss) {
List results = new ArrayList();
for (int i = 0; i < ss.length; i++) {
String s = ss[i];
if (s == null)
continue; s = " " + s;
Matcher matcher = PATTERN_FOR_BIT.matcher(s);
StringBuffer sb = null;
int start = 0; String finalString = null;
while (matcher.find(start)) {
sb = new StringBuffer();
String wantedpart = matcher.group(0); if (wantedpart != null) {
int key = wantedpart.length(); switch (key) {
case 2:
matcher.appendReplacement(sb, new StringBuffer(wantedpart).insert(1, "00").toString());
break;
case 3:
matcher.appendReplacement(sb, new StringBuffer(wantedpart).insert(1, "0").toString());
break;
default:
} matcher.appendTail(sb);
finalString = sb.toString();
matcher.reset(sb.toString());
}
start += 4;
}
if (finalString != null)
results.add(finalString.trim());
} return results;
} private static List processBlank(String[] ss) { List results = new ArrayList(); for (int i = 0; i < ss.length; i++) {
String s = ss[i];
if (s == null)
continue; Matcher matcher = PATTERN_FOR_BLANK.matcher(s); String finalString = null; while (matcher.find()) {
String replacement = matcher.group(1) + ",";
finalString = matcher.replaceFirst(replacement);
matcher.reset(finalString);
} if (finalString != null)
results.add(finalString.trim()); }
return results;
}
}
String arrIp[] = ip.split("\\.");
StringBuffer result = new StringBuffer();
for(int i=0;i<arrIp.length;i++){
result.append(("000"+arrIp[i]).substring(arrIp[i].length()));
result.append((i<arrIp.length-1)?".":"");
}
System.out.println(result.toString());
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Test {
public static void main(String[] args) {
String in = "61.54.231.245 61.54.231.245 河南省安阳市 新世纪网吧";
Pattern p = Pattern.compile("\\d{1,3}");
Matcher m = p.matcher(in);
int offset = 0;
StringBuffer sb = new StringBuffer(in);
while (m.find()) {
MatchResult mr = m.toMatchResult();
int s = mr.start();
int e = mr.end();
int r = e - s;
if (r == 1) {
sb.insert(s + offset, "00");
offset += 2;
}
else if (r == 2) {
sb.insert(s + offset, "0");
offset += 1;
}
}
System.out.println(in);
System.out.println(sb);
}
}
/**
*author: Eastsun
*/
public class ReplaceT{
public static void main(String[] args){
String str ="61.54.231.245 61.54.231.245 河南省安阳市 新世纪网吧" +
"\n61.54.231.246 61.54.231.246 河南省安阳市 未知地区" ;
String format =null;
format = str.replaceAll("(^|\\s|\\G|\\.|\\D)(\\d{2})($|\\s|\\.)","$10$2$3");
format = format.replaceAll("(^|\\s|\\G|\\.|\\D)(\\d)($|\\s|\\.)","$100$2$3");
format = format.replaceAll("(?<=^|\\D|\\G)(\\d{3}(\\.\\d{3}){3})(\\s)","$1$2,");
System.out.println(format);
}
}
String out = in.replaceAll("\\d{3}", "#$0#")
.replaceAll("\\d{2}\\.", "0$0")
.replaceAll("\\d{3}", "#$0#")
.replaceAll("\\d{1}\\.", "00$0")
.replaceAll("#", "");
System.out.println(in);
System.out.println(out);
String out = in.replaceAll("\\b\\d{1}\\b", "00$0").replaceAll("\\b\\d{2}\\b", "0$0");