import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Example {
public static void main(String[] args) {
final String regex = "^[A-Z](([A-Z]{1,2}[a-z0-9]+)+([A-Z]{1,3}[a-z0-9]+)*[A-Z]{0,3}|([a-z0-9]+[A-Z]{0,3})*|[A-Z]{1,2})$";
final String string = "ABCD\n"
+ "ABCDE\n"
+ "snake_case\n"
+ "camelCase\n"
+ "2PascalCase\n"
+ "streamIOIO\n"
+ "gREATERDtha\n"
+ "MdeADFAFdsADFads\n"
+ "DeviceSNSD\n"
+ "AabcABCD\n"
+ "AabcABCDabcABCD\n"
+ "ABabcABCD\n"
+ "ABabcABCDabcABCD\n"
+ "ABCabcABCD\n"
+ "ABCabcABCDabcABCDabcABCDabcABCD\n"
+ "ABCDabcABCD\n"
+ "ABCDabcABCDabcABCDabcABCDabcABCD\n"
+ "HTMLParser\n"
+ "ContextHTMLParser\n"
+ "ABabcABCDbcABC\n"
+ "ABCDabcABC\n"
+ "ABCDabcAB\n"
+ "ABCDabcA\n"
+ "CamelCa_1\n"
+ "HELLO\n"
+ "AaABC\n"
+ "PacalCasePacalCasePacalCasePacalCasePacalCasePacalCase\n"
+ "AabcABCabcABC\n"
+ "MoeADFdsADFads\n"
+ "ABCabcABC\n"
+ "ABCabcAB\n"
+ "ABabcABC\n"
+ "ABabcAB\n"
+ "AabcAB\n"
+ "ABCabcABCabcA\n"
+ "ABCabcA\n"
+ "Aabc123\n"
+ "AabcABC\n"
+ "A\n"
+ "AB\n"
+ "ABC\n"
+ "StreamIO\n"
+ "IOStream\n"
+ "DeviceID\n"
+ "DeviceSNS\n"
+ "Context\n"
+ "PascalCase\n"
+ "Pascal2Case\n"
+ "PascalCaseA\n"
+ "Pascal2CaseA\n"
+ "ModeA\n"
+ "Mode2A\n"
+ "Mode2A2\n"
+ "Mode2A2A\n"
+ "CreateAMode\n"
+ "CreateBMode\n"
+ "MadeEasy\n"
+ "WonderFul\n"
+ "AndMe\n"
+ "HtmlParser\n"
+ "H\n"
+ "AaA\n"
+ "Camel01C\n"
+ "Camel01c01\n"
+ "Camel01C01\n"
+ "Camel01CC01\n"
+ "Camel0a1c1\n"
+ "Camel0a1C1\n"
+ "Camel0ac1b1C1\n"
+ "CamelC\n"
+ "CamelC1\n"
+ "CamelCA\n"
+ "CamelCa1\n"
+ "IbsReleaseTestVerificationRegressionSuite\n"
+ "IbsReleaseTestVerificationRegressioNSuite\n"
+ "IbsReleaseTestVerificationRegressioN\n"
+ "XmlHttpRequest\n"
+ "NewCustomerId\n"
+ "InnerStopwatch\n"
+ "SupportsIpv6OnIos\n"
+ "YouTubeImporter\n"
+ "YoutubeImporter\n"
+ "Affine3D";
final Pattern pattern = Pattern.compile(regex, Pattern.MULTILINE);
final Matcher matcher = pattern.matcher(string);
while (matcher.find()) {
System.out.println("Full match: " + matcher.group(0));
for (int i = 1; i <= matcher.groupCount(); i++) {
System.out.println("Group " + i + ": " + matcher.group(i));
}
}
}
}
Please keep in mind that these code samples are automatically generated and are not guaranteed to work. If you find any syntax errors, feel free to submit a bug report. For a full regex reference for Java, please visit: https://docs.oracle.com/javase/7/docs/api/java/util/regex/Pattern.html