import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Example {
public static void main(String[] args) {
final String regex = "^[a-zA-Z]\\d{4}$";
final String string = "# The CMS, who maintain these codes, describe the format as:-\n"
+ "# \"HCPCS Level II codes (also known as alpha-numeric codes) consist of a single alphabetical letter followed by 4 numeric digits.\"\n"
+ "# (https://www.cms.gov/medicare/coding-billing/healthcare-common-procedure-system)\n"
+ "# NOTE: This regex will not identify HCPCS Level I codes (AKA CPT codes)\n"
+ "# Also, some sources say the single letter ranges only from A-V (this regex follows A-Z)\n"
+ "# Finally, this regex does not match procedure modifiers, which are 2 digit codes that follow a HCPCS code (with hyphen). \n"
+ "# (https://www.aapc.com/resources/what-are-medical-coding-modifiers)\n"
+ "# A separate regex has been created on regex101 supporting these modifiers\n\n"
+ "# Genuine codes\n"
+ "E8015\n"
+ "A6410\n"
+ "C5278\n"
+ "G2102\n"
+ "M1221\n"
+ "V2623\n"
+ "V2756\n"
+ "c5278\n"
+ "g2102\n"
+ "m1221\n"
+ "v2623\n"
+ "v2756\n"
+ "# Should fail\n"
+ "EE8015\n"
+ "6410\n"
+ "E641O\n"
+ "[6410\n"
+ "_6510\n"
+ "g212\n"
+ "C52789\n";
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