?? regfilterbuilder.java
字號:
package com.laoer.bbscs.sys;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
/**
* <p>Title: TianYi BBS</p>
* <p>Description: TianYi BBS System</p>
* <p>Copyright: Copyright (c) 2004</p>
* <p>Company: LAOER.COM/TIANYISOFT.NET</p>
* @author laoer
* @version 6.0
*/
public class RegFilterBuilder
implements FilterBuilder {
private String regex = null;
private String rpStr = null;
private String source = null;
private String result = null;
public RegFilterBuilder(String regex, String rpStr, String source) {
super();
this.regex = regex;
this.rpStr = rpStr;
this.source = source;
}
public void buildFilter() {
if (this.regex == null) {
return;
}
Pattern p = Pattern.compile(regex, 2);
Matcher matcher = p.matcher(this.source);
StringBuffer sb = new StringBuffer();
String tempString = rpStr;
int rpL = rpStr.split("\\$[0-9]+").length;
while (matcher.find()) {
for (int i = 0; (i < rpL) && (i < matcher.groupCount()); i++) {
tempString = tempString.replaceAll("\\$" + i, matcher.group(i));
}
matcher.appendReplacement(sb, tempString);
}
matcher.appendTail(sb);
this.result = sb.toString();
}
public Filter getFilter() {
return (new RegexFilter() {
public String getFilteredStr() {
return result;
}
});
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -