java/sql-dk/src/info/globalcode/sql/dk/Functions.java
branchv_0
changeset 51 6730214fab41
parent 46 0b05bc13aadd
child 54 53020d0bd2e4
equal deleted inserted replaced
50:074b81e5fa7c 51:6730214fab41
   131 	public static String repeat(char ch, int count) {
   131 	public static String repeat(char ch, int count) {
   132 		char[] array = new char[count];
   132 		char[] array = new char[count];
   133 		Arrays.fill(array, ch);
   133 		Arrays.fill(array, ch);
   134 		return new String(array);
   134 		return new String(array);
   135 	}
   135 	}
   136 
       
   137 	/**
       
   138 	 * @param original any text
       
   139 	 * @return escaped text that can be used as part of an regular expression, matches the original
       
   140 	 * text
       
   141 	 */
       
   142 	public static String escapeRegEx(String original) {
       
   143 		StringBuilder escaped = new StringBuilder(original.length() * 3);
       
   144 
       
   145 		escaped.append("\\Q"); // start quotation
       
   146 		for (int i = 0; i < original.length(); i++) {
       
   147 			char ch = original.charAt(i);
       
   148 			if (ch == 'E' && i > 0 && original.charAt(i - 1) == '\\') {
       
   149 				escaped.append(ch); // this unintentionally ends quotation
       
   150 				escaped.append("\\\\E"); // insert escaped \E (eaten before)
       
   151 				escaped.append("\\Q"); // re-start quotation
       
   152 			} else {
       
   153 				escaped.append(ch);
       
   154 			}
       
   155 
       
   156 		}
       
   157 		escaped.append("\\E"); // end quotation
       
   158 
       
   159 		return escaped.toString();
       
   160 	}
       
   161 }
   136 }