- /**
- * Copyright: Copyright (c) 2004-2004
- * Company: JavaResearch(http://www.javaresearch.org)
- * 创建日期:2004-11-12
- * 最后更新日期:2004-11-12
- * @author Cherami
- */
- package org.jr.util;
-
- import java.util.regex.Matcher;
- import java.util.regex.Pattern;
-
- /**
- * 正则表达式相关的工具类。
- * @since 0.6
- */
-
- public class RegexUtil {
- private static Pattern pattern=Pattern.compile("([\\p{Punct}&&[^\\$\\\\]])");
- /**
- * 将字符串中正则表达式特殊字符转换为普通字符。
- * @param original 原字符串
- * @return 转换后的字符串
- */
- public static String escapeRegex(String original) {
- Matcher matcher=pattern.matcher(escapeDollarBackslash(original));
- StringBuffer buffer=new StringBuffer();
- while (matcher.find()) {
- String group=matcher.group();
- matcher.appendReplacement(buffer, "\\\\"+group);
- }
- matcher.appendTail(buffer);
- return buffer.toString();
- }
- /**
- * 将字符串中的转义字符和美元符转换为普通字符
- * @param original 原字符串
- * @return 转换后的字符串
- */
- public static String escapeDollarBackslash(String original) {
- StringBuffer buffer=new StringBuffer(original.length());
- for (int i=0;i<original.length();i++) {
- char c=original.charAt(i);
- if (c=='\\'||c=='$') {
- buffer.append("\\").append(c);
- } else{
- buffer.append(c);
- }
- }
- return buffer.toString();
- }
-
- }