正则表达式模式语法异常

时间:2014-05-15 10:40:47

标签: java regex

我正在使用此regex expression

[Ss]([0-9]+)[][ ._-]*[Ee]([0-9]+)([^\\/]*)$

当我转换为pattern

时,它会引发异常
pattern = Pattern.compile(regExp.get(i));


    05-15 11:16:06.914: E/AndroidRuntime(5268): java.util.regex.PatternSyntaxException: Missing closing bracket in character class near index 43:
05-15 11:16:06.914: E/AndroidRuntime(5268): [Ss]([0-9]+)[][ ._-]*[Ee]([0-9]+)([^\\/]*)$
05-15 11:16:06.914: E/AndroidRuntime(5268):                                            ^
05-15 11:16:06.914: E/AndroidRuntime(5268):     at java.util.regex.Pattern.compileImpl(Native Method)
05-15 11:16:06.914: E/AndroidRuntime(5268):     at java.util.regex.Pattern.compile(Pattern.java:400)
05-15 11:16:06.914: E/AndroidRuntime(5268):     at java.util.regex.Pattern.<init>(Pattern.java:383)
05-15 11:16:06.914: E/AndroidRuntime(5268):     at java.util.regex.Pattern.compile(Pattern.java:374)

java regex tester上运行时,它可以正常工作。我相信我需要在这里逃避一些角色..

1 个答案:

答案 0 :(得分:1)

我在这里看到2个问题:

  1. 您正在使用空字符类[]
  2. 反斜杠需要更多转义
  3. 您可以使用此正则表达式:

    [Ss]([0-9]+)[ ._-]*[Ee]([0-9]+)([^\\\\/]*)$