replaced more split and replaceAll missing pattern pre-compilation with

pre-compiled pattern
pull/1/head
Michael Peter Christen 12 years ago
parent 8fc3679c66
commit 3de784c8dd

@ -1,9 +1,8 @@
import java.util.Iterator;
import java.util.regex.Pattern;
import net.yacy.cora.protocol.RequestHeader;
import net.yacy.cora.util.CommonPattern;
import net.yacy.data.BookmarkHelper;
import net.yacy.data.BookmarksDB;
import net.yacy.data.UserDB;
@ -52,12 +51,12 @@ public class get_folders {
// loop through folderList
it = BookmarkHelper.getFolderList(root, sb.bookmarksDB.getTagIterator(isAdmin));
int n = Pattern.compile("/").split(root, 0).length;
int n = CommonPattern.SLASH.split(root, 0).length;
if (n == 0) n = 1;
int count = 0;
while (it.hasNext()) {
final String folder = it.next();
foldername = Pattern.compile("/").split(folder, 0);
foldername = CommonPattern.SLASH.split(folder, 0);
if (foldername.length == n+1) {
prop.put("folders_"+count+"_foldername", foldername[n]);
prop.put("folders_"+count+"_expanded", "false");

@ -24,7 +24,6 @@ import java.io.OutputStreamWriter;
import java.io.Writer;
import java.util.ArrayList;
import java.util.Map;
import java.util.regex.Pattern;
import net.yacy.cora.document.UTF8;
import net.yacy.cora.federate.solr.YaCySchema;
@ -32,6 +31,7 @@ import net.yacy.cora.federate.solr.connector.EmbeddedSolrConnector;
import net.yacy.cora.federate.solr.responsewriter.GSAResponseWriter;
import net.yacy.cora.protocol.HeaderFramework;
import net.yacy.cora.protocol.RequestHeader;
import net.yacy.cora.util.CommonPattern;
import net.yacy.kelondro.logging.Log;
import net.yacy.search.Switchboard;
import net.yacy.search.query.AccessTracker;
@ -145,7 +145,7 @@ public class searchresult {
// add sites operator
if (site != null && site.length() > 0) {
String[] s0 = Pattern.compile(Pattern.quote("|")).split(site, 0);
String[] s0 = CommonPattern.VERTICALBAR.split(site);
ArrayList<String> sites = new ArrayList<String>(2);
for (String s: s0) {
s = s.trim().toLowerCase();

@ -33,6 +33,8 @@ import java.util.ArrayList;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
import net.yacy.cora.util.CommonPattern;
import org.w3c.dom.CharacterData;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
@ -78,7 +80,7 @@ public class YaCySearchClient {
.append("/yacysearch.rss?verify=false&startRecord=")
.append(YaCySearchClient.this.offset)
.append("&maximumRecords=10&resource=local&query=")
.append(YaCySearchClient.this.query.replaceAll(" ", "+")).toString();
.append(CommonPattern.SPACE.matcher(YaCySearchClient.this.query).replaceAll("+")).toString();
try { url = new URL(u); } catch (MalformedURLException e) { throw new IOException (e); }
try { doc = DocumentBuilderFactory.newInstance().newDocumentBuilder().parse(url.openStream()); }
catch (ParserConfigurationException e) { throw new IOException (e); }

@ -69,11 +69,6 @@ public class MultiProtocolURI implements Serializable, Comparable<MultiProtocolU
public static final int TLD_any_zone_filter = 255; // from TLD zones can be filtered during search; this is the catch-all filter
private static final Pattern backPathPattern = Pattern.compile("(/[^/]+(?<!/\\.{1,2})/)[.]{2}(?=/|$)|/\\.(?=/)|/(?=/)");
private static final Pattern patternQuestion = Pattern.compile("\\?");
private static final Pattern patternDot = Pattern.compile("\\.");
private static final Pattern patternSlash = Pattern.compile("/");
private static final Pattern patternBackSlash = Pattern.compile("\\\\");
private static final Pattern patternAmp = Pattern.compile("&");
private static final Pattern patternMail = Pattern.compile("^[a-z]+:.*?");
//private static final Pattern patternSpace = Pattern.compile("%20");
@ -143,7 +138,7 @@ public class MultiProtocolURI implements Serializable, Comparable<MultiProtocolU
url = "http:" + url;
}
if (url.startsWith("\\\\")) {
url = "smb://" + patternBackSlash.matcher(url.substring(2)).replaceAll("/");
url = "smb://" + CommonPattern.BACKSLASH.matcher(url.substring(2)).replaceAll("/");
}
if (url.length() > 1 && url.charAt(1) == ':') {
@ -241,7 +236,7 @@ public class MultiProtocolURI implements Serializable, Comparable<MultiProtocolU
// handle international domains
if (!Punycode.isBasic(this.host)) try {
final String[] domainParts = patternDot.split(this.host, 0);
final String[] domainParts = CommonPattern.DOT.split(this.host, 0);
final StringBuilder buffer = new StringBuilder(80);
// encode each domain-part separately
for(int i = 0; i < domainParts.length; i++) {
@ -383,7 +378,7 @@ public class MultiProtocolURI implements Serializable, Comparable<MultiProtocolU
private static final String resolveBackpath(final String path) {
String p = path;
if (p.isEmpty() || p.charAt(0) != '/') { p = "/" + p; }
final Matcher qm = patternQuestion.matcher(p); // do not resolve backpaths in the post values
final Matcher qm = CommonPattern.QUESTION.matcher(p); // do not resolve backpaths in the post values
final int end = qm.find() ? qm.start() : p.length();
final Matcher matcher = backPathPattern.matcher(p);
while (matcher.find()) {
@ -409,7 +404,7 @@ public class MultiProtocolURI implements Serializable, Comparable<MultiProtocolU
}
private void escapePath() {
final String[] pathp = patternSlash.split(this.path, -1);
final String[] pathp = CommonPattern.SLASH.split(this.path, -1);
final StringBuilder ptmp = new StringBuilder(this.path.length() + 10);
for (final String element : pathp) {
ptmp.append('/');
@ -423,7 +418,7 @@ public class MultiProtocolURI implements Serializable, Comparable<MultiProtocolU
}
private void escapeSearchpart() {
final String[] questp = patternAmp.split(this.searchpart, -1);
final String[] questp = CommonPattern.AMP.split(this.searchpart, -1);
final StringBuilder qtmp = new StringBuilder(this.searchpart.length() + 10);
for (final String element : questp) {
if (element.indexOf('=') != -1) {

@ -25,11 +25,11 @@ import java.io.File;
import java.io.FileInputStream;
import java.util.HashSet;
import java.util.Map.Entry;
import java.util.regex.Pattern;
import java.util.Properties;
import java.util.Set;
import net.yacy.cora.document.MultiProtocolURI;
import net.yacy.cora.util.CommonPattern;
public class Classification {
@ -105,7 +105,7 @@ public class Classification {
private static void addSet(Set<String> set, final String extString) {
if ((extString == null) || (extString.isEmpty())) return;
for (String s: Pattern.compile(",").split(extString, 0)) set.add(s.toLowerCase().trim());
for (String s: CommonPattern.COMMA.split(extString, 0)) set.add(s.toLowerCase().trim());
}
public static boolean isTextExtension(String textExt) {

@ -38,6 +38,7 @@ import net.yacy.cora.document.WordCache.Dictionary;
import net.yacy.cora.geo.GeoLocation;
import net.yacy.cora.geo.Locations;
import net.yacy.cora.storage.Files;
import net.yacy.cora.util.CommonPattern;
public class Tagging {
@ -588,20 +589,17 @@ public class Tagging {
}
}
private final static Pattern PATTERN_UL = Pattern.compile("_");
private final static Pattern PATTERN_SP = Pattern.compile(" ");
public static final String encodePrintname(String printname) {
return PATTERN_SP.matcher(printname).replaceAll("_");
return CommonPattern.SPACE.matcher(printname).replaceAll("_");
}
public static final String decodeMaskname(String maskname) {
return PATTERN_UL.matcher(maskname).replaceAll(" ");
return CommonPattern.UNDERSCORE.matcher(maskname).replaceAll(" ");
}
public static String cleanTagFromAutotagging(final String tagString) {
if (tagString == null || tagString.isEmpty()) return "";
String[] tags = PATTERN_SP.split(tagString);
String[] tags = CommonPattern.SPACE.split(tagString);
StringBuilder sb = new StringBuilder(tagString.length());
for (String tag : tags) {
if (tag.length() > 0) {

@ -43,9 +43,13 @@ public class CommonPattern {
public final static Pattern SEMICOLON = Pattern.compile(";");
public final static Pattern DOUBLEPOINT = Pattern.compile(":");
public final static Pattern SLASH = Pattern.compile("/");
public final static Pattern BACKSLASH = Pattern.compile("\\\\");
public final static Pattern QUESTION = Pattern.compile("\\?");
public final static Pattern AMP = Pattern.compile("&");
public final static Pattern PLUS = Pattern.compile(Pattern.quote("+"));
public final static Pattern DOT = Pattern.compile("\\.");
public final static Pattern NEWLINE = Pattern.compile("\n");
public final static Pattern VERTICALBAR = Pattern.compile(Pattern.quote("|"));
public final static Pattern UNDERSCORE = Pattern.compile("_");
}

@ -39,6 +39,7 @@ import net.yacy.cora.document.MultiProtocolURI;
import net.yacy.cora.federate.yacy.CacheStrategy;
import net.yacy.cora.order.Base64Order;
import net.yacy.cora.order.Digest;
import net.yacy.cora.util.CommonPattern;
import net.yacy.crawler.CrawlSwitchboard;
import net.yacy.kelondro.data.word.Word;
import net.yacy.kelondro.logging.Log;
@ -155,7 +156,7 @@ public class CrawlProfile extends ConcurrentHashMap<String, String> implements M
put(STORE_HTCACHE, storeHTCache);
put(REMOTE_INDEXING, remoteIndexing);
put(CACHE_STRAGEGY, cacheStrategy.toString());
put(COLLECTIONS, collections.trim().replaceAll(" ", ""));
put(COLLECTIONS, CommonPattern.SPACE.matcher(collections.trim()).replaceAll(""));
}
/**

@ -40,6 +40,7 @@ import net.yacy.cora.document.UTF8;
import net.yacy.cora.order.Base64Order;
import net.yacy.cora.order.NaturalOrder;
import net.yacy.cora.protocol.Domains;
import net.yacy.cora.util.CommonPattern;
import net.yacy.cora.util.SpaceExceededException;
import net.yacy.kelondro.blob.MapHeap;
import net.yacy.kelondro.logging.Log;
@ -140,7 +141,7 @@ public class WikiBoard {
* @return normalized and webalized version.
*/
public static String webalize(final String key) {
return (key != null) ? normalize(key).replaceAll(" ", "%20") : "null";
return (key != null) ? CommonPattern.SPACE.matcher(normalize(key)).replaceAll("%20") : "null";
}
/**

Loading…
Cancel
Save