java - 未封闭的字符类(正则表达式)

标签 java regex

所以,我有这个半复杂的正则表达式,它正在搜索两个字符串之间的所有文本,然后替换它。

我的搜索正则表达式是:

(jump *[A-Z].*)(?:[^])*?([A-Z].*:)

这在最后一个右括号上给出了一个未闭合的字符类,我一直在努力解决这个问题。正则表达式似乎在 RegexR ( http://regexr.com/?38k63 ) 上按预期工作

谁能提供一些帮助或见解?

提前致谢。

最佳答案

错误在这里:

(jump *[A-Z].*)(?:[^])*?([A-Z].*:)
                   ^

在字符类中 ^ 仍然是一个特殊字符。当你放在那里时,它通常会否定其他角色。所以在 Java 中用 \\ 转义它。

关于java - 未封闭的字符类(正则表达式),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22644993/

相关文章:

java - 我可以包装多个 Java 排序集,使它们看起来像一个吗?

javascript - 在 Javascript 中重新格式化复杂文本日期字符串的更好方法

regex - 在 url 重写中追加文档根目录

Java正则表达式: Need Simpler Solution

javascript - 从 url 字符串中获取 ID

java - jPanel 调整大小后 jScrollPane 滚动消失

java - Java中定期执行任务

java - 如何创建一个包含 100 个随机数且每行 15 个数字的文件?

java - Struts Validation.xml - requiredif 问题

regex - SVN 标签版本号从命令行递增