java - 正则表达式模式语法异常

标签 java regex

我正在使用这个正则表达式:

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

当我转换为模式时,它抛出异常:

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 正则表达式测试器 上运行时工作正常。我相信我需要在这里转义一些字符..

最佳答案

我在这里看到 2 个问题:

  1. 您正在使用空字符类[]
  2. 反斜杠需要更多转义

您可以使用此正则表达式:

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

关于java - 正则表达式模式语法异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23675909/

相关文章:

java - 如何使用嵌入式 jetty 在给定地址提供特定类路径资源?

PHP preg_match 占位符 [@varname]

regex - .htaccess 根据条件和参数重定向

java - 一个正则表达式来匹配一个子字符串,该子字符串后面没有某个其他子字符串

Javascript 从短代码字符串中提取属性

java - XmlPullParser getAttributeValue 总是返回 null

java - 在 Swing Java 中创建自定义列表

java - 如何设置最大 xmx 和 xms 值而不出现内存不足异常

java - 加入的预期路径

PHP:浏览器版本号 user-agent with Version/x.x.x (Safari & Opera)