Java String Quote quoteRegexMeta(String str)

Here you can find the source of quoteRegexMeta(String str)

Description

Quote the characters in a String that have a special meaning in regular expression.

License

Apache License

Declaration

public static String quoteRegexMeta(String str) 

Method Source Code

//package com.java2s;
/*/* w w  w  .  j  a  va2  s.c o  m*/
 * StringUtil.java
 *
 * This file is part of SQL Workbench/J, http://www.sql-workbench.net
 *
 * Copyright 2002-2017, Thomas Kellerer
 *
 * Licensed under a modified Apache License, Version 2.0
 * that restricts the use for certain governments.
 * You may not use this file except in compliance with the License.
 * You may obtain a copy of the License at.
 *
 *     http://sql-workbench.net/manual/license.html
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 *
 * To contact the author please send an email to: support@sql-workbench.net
 *
 */

public class Main {
    public static final String EMPTY_STRING = "";
    public static final String REGEX_SPECIAL_CHARS = "\\[](){}.*+?$^|";

    /**
     *    Quote the characters in a String that have a special meaning
     *  in regular expression.
     */
    public static String quoteRegexMeta(String str) {
        if (str == null)
            return null;
        if (str.length() == 0) {
            return EMPTY_STRING;
        }
        int len = str.length();
        StringBuilder buf = new StringBuilder(len + 5);
        for (int i = 0; i < len; i++) {
            char c = str.charAt(i);
            if (REGEX_SPECIAL_CHARS.indexOf(c) != -1) {
                buf.append('\\');
            }
            buf.append(c);
        }
        return buf.toString();
    }

    public static int indexOf(CharSequence value, char c) {
        return indexOf(value, c, 1);
    }

    public static int indexOf(CharSequence value, char c, int occurance) {
        if (value == null)
            return -1;
        if (occurance <= 0)
            occurance = 1;
        int numFound = 0;

        for (int i = 0; i < value.length(); i++) {
            if (value.charAt(i) == c) {
                numFound++;
                if (numFound == occurance)
                    return i;
            }
        }
        return -1;
    }
}

Related

  1. quotePattern(String s)
  2. quotePlainText(final String textContent)
  3. quoteQuery(String query)
  4. quoteReference(final String reference)
  5. quoteRegexMeta(final String input)
  6. quoteRemarkSQL(String sql)
  7. quoteRemarkSQL(String sql)
  8. quoteReplacement(String s)
  9. quoteReplacement(String s)