0
4

5 に答える 5

2

このパターンで真実を知ることができます: (?i)[(\\[{]?null[)\\]}]?. 以下の例を参照してください。

import java.util.regex.Matcher;
import java.util.regex.Pattern;

import org.apache.commons.lang3.StringUtils;

public class EnumProgram {

    public static void main(String... args) {
        test("a NULL b", "a  b");
        test("a null b", "a  b");
        test("a Null b", "a  b");
        test("a NuLl b", "a  b");
        test("a (null) b", "a  b");
        test("a [null] b", "a  b");
        test("a {null} b", "a  b");
    }

    private static void test(String value, String expected) {
        String newValue = Util.removeNullString(value);
        System.out.println(value + " : " + newValue.equals(expected));
    }
}

class Util {
    private static Pattern pattern = Pattern.compile("(?i)[(\\[{]?null[)\\]}]?");

    public static String removeNullString(String value) {
        if (StringUtils.isEmpty(value)) {
            return StringUtils.EMPTY;
        }

        Matcher matcher = pattern.matcher(value);
        return matcher.replaceAll(StringUtils.EMPTY);
    }
}
于 2013-10-21T09:25:39.283 に答える
0

(?i) を使用して、正規表現で大文字と小文字を区別しないことを検証します。例として、以下のコードを参照してください。以下のコードは「a b」を出力します

String str = "a NULl b";
String regx = "(?i)null";
String str2 = str.replaceAll(regx, "");
System.out.println(str2);

output : a b
于 2013-10-21T09:30:35.853 に答える
0

これを試して:

str.replaceAll("(?i)\\(null\\)|\\[null\\]|\\{null\\}|null", "");
于 2013-10-21T09:11:02.950 に答える