我有一些复杂的正则表达式,我需要评论可读性和维护. Java规范相当简洁,我很久以来一直在努力工作.我终于抓到了我的错误,并将其发布为一个答案,但我将不胜感激维持正则表达式的任何其他建议
作为一个例子,我想在简单的名称解析器中注释子组件(patternS):
String testTarget = "Waldorf T. Flywheel";
String patternS = "([A-Za-z]+)\\s+([A-Z]\\.)?\\s+([A-Za-z]+)";
Pattern pattern = Pattern.compile(patternS, Pattern.COMMENTS);
Assert.assertTrue(pattern.matcher(testTarget).matches());
编辑:我也会感谢(?x)格式的例子.
编辑:@ geowa4有一个很好的建议,避免嵌入的意见. Sinnce java等人为嵌入式注释提供了有用的情况? (我想我有一个案件,但我有兴趣看别人).
编辑:如下所述@mikej,正则表达式不支持可选的初始值,并且会更好:
String patternS = "([A-Za-z]+)\\s+([A-Z]\\.\\s+)?([A-Za-z]+)";
但最终将在最初提取空间