public static String getRegExpression()

in study-builder/fdahpStudyDesigner/src/main/java/com/fdahpstudydesigner/util/FdahpStudyDesignerUtil.java [696:808]


  public static String getRegExpression(
      String validCondition, String validCharacters, String exceptCharacters) {
    String regEx = "";
    if ((StringUtils.isNotEmpty(validCharacters)) && (StringUtils.isNotEmpty(validCondition))) {
      if (validCondition.equalsIgnoreCase(FdahpStudyDesignerConstants.ALLOW)) {
        regEx += "[";
        if (validCharacters.equalsIgnoreCase(FdahpStudyDesignerConstants.ALLCHARACTERS)) {
          regEx += "^.";
        } else if (validCharacters.equalsIgnoreCase(FdahpStudyDesignerConstants.ALPHABETS)) {
          regEx += "a-zA-Z ";
        } else if (validCharacters.equalsIgnoreCase(FdahpStudyDesignerConstants.NUMBERS)) {
          regEx += "0-9 ";
        } else if (validCharacters.equalsIgnoreCase(
            FdahpStudyDesignerConstants.ALPHABETSANDNUMBERS)) {
          regEx += "a-zA-Z0-9 ";
        } else if (validCharacters.equalsIgnoreCase(
            FdahpStudyDesignerConstants.SPECIALCHARACTERS)) {
          regEx += "^A-Za-z0-9";
        }
        if ((exceptCharacters != null) && StringUtils.isNotEmpty(exceptCharacters)) {
          String[] exceptChar = exceptCharacters.split("");
          StringBuilder except = new StringBuilder();
          String escapeSplChar = "";
          for (String element : exceptChar) {

            for (int i = 0; i < element.length(); i++) {
              if (!Character.isDigit(element.charAt(i))
                  && !Character.isLetter(element.charAt(i))
                  && !Character.isWhitespace(element.charAt(i))) {
                if (element.charAt(i) == '|') {
                  escapeSplChar = escapeSplChar + element.charAt(i);
                } else {
                  escapeSplChar = escapeSplChar + "\\" + element.charAt(i);
                }

              } else {
                escapeSplChar = escapeSplChar + "" + element.charAt(i);
              }
            }
          }
          except.append("^(?!.*" + escapeSplChar.trim().replace(" ", "") + ")");

          regEx = except + regEx + "]+";
        } else {
          regEx += "]+";
        }
      } else {
        if (validCharacters.equalsIgnoreCase(FdahpStudyDesignerConstants.ALLCHARACTERS)) {
          if (StringUtils.isNotEmpty(exceptCharacters)) {
            String[] exceptChar = exceptCharacters.split("");
            StringBuilder except = new StringBuilder();
            String escapeSplChar = "";
            for (String element : exceptChar) {

              for (int i = 0; i < element.length(); i++) {

                if (!Character.isDigit(element.charAt(i))
                    && !Character.isLetter(element.charAt(i))
                    && !Character.isWhitespace(element.charAt(i))) {
                  if (element.charAt(i) == '|') {
                    escapeSplChar = escapeSplChar + element.charAt(i);
                  } else {
                    escapeSplChar = escapeSplChar + "\\" + element.charAt(i);
                  }

                } else {
                  escapeSplChar = escapeSplChar + "" + element.charAt(i);
                }
              }
            }
            except.append("^(?:" + escapeSplChar.trim().replace(" ", "") + ")$");

            regEx = except + regEx;

          } else {
            regEx += "^([A-Za-z]*, )$";
          }

        } else if (validCharacters.equalsIgnoreCase(FdahpStudyDesignerConstants.ALPHABETS)) {
          regEx += "^([^a-zA-Z]";
        } else if (validCharacters.equalsIgnoreCase(FdahpStudyDesignerConstants.NUMBERS)) {
          regEx += "^([^0-9]";
        } else if (validCharacters.equalsIgnoreCase(
            FdahpStudyDesignerConstants.ALPHABETSANDNUMBERS)) {
          regEx += "^([^a-zA-Z0-9]";
        } else if (validCharacters.equalsIgnoreCase(
            FdahpStudyDesignerConstants.SPECIALCHARACTERS)) {
          regEx += "^([A-Za-z0-9 ]";
        }
        if (!validCharacters.equalsIgnoreCase(FdahpStudyDesignerConstants.ALLCHARACTERS)) {
          if ((exceptCharacters != null) && StringUtils.isNotEmpty(exceptCharacters)) {
            String[] exceptChar = exceptCharacters.split("\\|");
            StringBuilder except = new StringBuilder();
            if (validCharacters.equalsIgnoreCase(FdahpStudyDesignerConstants.SPECIALCHARACTERS)) {
              for (String element : exceptChar) {
                except.append(element.trim().replace(" ", ""));
              }
              regEx += "|[" + except + "]*)+$";
            } else {
              for (String element : exceptChar) {
                except.append("|\\b(\\b" + element.trim().replace(" ", "") + "\\b)");
              }
              regEx += except + "*)+$";
            }

          } else {
            regEx += "*)+$";
          }
        }
      }
    }
    return regEx;
  }