标签: patternsyntaxexception

在Java中用'\\'替换单个'\'

如何更换一个'\'带有'\\'?当我运行时,replaceAll()我收到此错误消息.

Exception in thread "main" java.util.regex.PatternSyntaxException:
                           Unexpected internal error near index 1 \
                                                                  ^
    at java.util.regex.Pattern.error(Pattern.java:1713)
    at java.util.regex.Pattern.compile(Pattern.java:1466)
    at java.util.regex.Pattern.<init>(Pattern.java:1133)
    at java.util.regex.Pattern.compile(Pattern.java:823)
    at java.lang.String.replaceAll(String.java:2190)
    at NewClass.main(NewClass.java:13)
Java Result: 1
Run Code Online (Sandbox Code Playgroud)

我的代码:

public class NewClass {
    public static void main(String[] args) {
        String str = "C:\\Documents and Settings\\HUSAIN\\My Documents\\My Palettes";
        str = str.replaceAll("\\", "\\\\");
        System.out.println(str);
    }
}
Run Code Online (Sandbox Code Playgroud)

java regex string patternsyntaxexception

10
推荐指数
3
解决办法
2万
查看次数

Android可选字边界正则表达式

我在定位Android平台2.2.3时遇到正则表达式问题.

以下正则表达式在我的桌面上定位Java VM时起作用,而正则表达式也在.NET应用程序上工作.

Pattern.compile("\\b?")
Run Code Online (Sandbox Code Playgroud)

但是当我定位我的手机时,我得到一个PatternSyntaxException.有任何想法吗?

regex android patternsyntaxexception

6
推荐指数
1
解决办法
479
查看次数

PatternSyntaxException

以下字符串导致PatternSyntaxException:

Pattern.compile("*\\.*");
Run Code Online (Sandbox Code Playgroud)

我想创建一个模式,以便我可以使用以下格式过滤所有具有名称的文件: "*.*"

我怎样才能做到这一点?

java regex patternsyntaxexception

5
推荐指数
1
解决办法
1859
查看次数

在"+"符号上拆分Java字符串会出错

我正在编写一个java程序,其中一个子任务是获取一个字符串并将其拆分到一个位置.所以,这是我的代码的一小部分:

public class Driver
{
    public static void main(String[] args)
    {
        String str = "a+d";
        String[] strparts = str.split("+");
        for (String item : strparts)
        {
            System.out.println(item);
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

我期待结果:

a
d
Run Code Online (Sandbox Code Playgroud)

但令我惊讶的是,我得到:

Exception in thread "main" java.util.regex.PatternSyntaxException: Dangling meta character '+' near index 0
+
^

    at java.util.regex.Pattern.error(Pattern.java:1955)
    at java.util.regex.Pattern.sequence(Pattern.java:2123)
    at java.util.regex.Pattern.expr(Pattern.java:1996)
    at java.util.regex.Pattern.compile(Pattern.java:1696)
    at java.util.regex.Pattern.<init>(Pattern.java:1351)
    at java.util.regex.Pattern.compile(Pattern.java:1028)
    at java.lang.String.split(String.java:2367)
    at java.lang.String.split(String.java:2409)
    at Test.Driver.main(Driver.java:8)
Run Code Online (Sandbox Code Playgroud)

这是怎么回事?
谢谢!

java regex string split patternsyntaxexception

2
推荐指数
1
解决办法
970
查看次数

为什么我的无效模式没有抛出 PatternSyntaxException?

我想测试一个正则表达式在 Java 1.8.0_241 中是否有效

public static boolean isRegExpValid(String regExp) {
    try {
        Pattern.compile(regExp);
        return true;
    } catch (PatternSyntaxException e) {
        return false;
    }
}
Run Code Online (Sandbox Code Playgroud)

在这里,我正在测试三位数的正确正则表达式和不正确的正则表达式。

@Test
public void testValidRegexp() {
    assertTrue(isRegExpValid("\\d{3}"));
}

@Test
public void testInvalidRegexp() {
    assertFalse(isRegExpValid("{3}"));
}
Run Code Online (Sandbox Code Playgroud)

为什么我的第二次测试testInvalidRegexp失败了?isRegExpValid("{3}")应该返回false,但返回true。

在 Javascript 中,{3}正确失败并显示Nothing to repeat异常。 在此处输入图片说明

java regex unit-testing patternsyntaxexception

1
推荐指数
1
解决办法
79
查看次数