List of usage examples for java.util.regex Pattern pattern
pattern
From source file:org.eclipse.osee.ote.core.test.shells.TelnetShell.java
public synchronized MatchResult waitForPattern(Pattern pattern, int millis) throws InterruptedException { MatchResult index = inputBuffer.waitFor(pattern, false, millis); if (index == null) { throw new InterruptedException( "Waiting for '" + pattern.pattern() + "' took longer then " + millis + " miliseconds."); }//from www .j a v a2 s . c o m return index; }
From source file:guru.qas.martini.runtime.harness.MartiniCallable.java
protected Object[] getArguments(Step step, Method method, StepImplementation implementation) { Parameter[] parameters = method.getParameters(); Object[] arguments = new Object[parameters.length]; Map<String, String> exampleValues = null; Recipe recipe = martini.getRecipe(); ScenarioDefinition definition = recipe.getScenarioDefinition(); if (ScenarioOutline.class.isInstance(definition)) { exampleValues = new HashMap<>(); ScenarioOutline outline = ScenarioOutline.class.cast(definition); int exampleLine = recipe.getLocation().getLine(); List<Examples> examples = outline.getExamples(); TableRow header = null;//from w w w . j a va 2 s. c o m TableRow match = null; for (Iterator<Examples> i = examples.iterator(); null == match && i.hasNext();) { Examples nextExamples = i.next(); List<TableRow> rows = nextExamples.getTableBody(); for (Iterator<TableRow> j = rows.iterator(); null == match && j.hasNext();) { TableRow row = j.next(); if (row.getLocation().getLine() == exampleLine) { match = row; header = nextExamples.getTableHeader(); } } } checkState(null != header, "unable to locate matching Examples table"); List<TableCell> headerCells = header.getCells(); List<TableCell> rowCells = match.getCells(); checkState(headerCells.size() == rowCells.size(), "Examples header to row size mismatch"); for (int i = 0; i < headerCells.size(); i++) { String headerValue = headerCells.get(i).getValue(); String rowValue = rowCells.get(i).getValue(); exampleValues.put(headerValue, rowValue); } } if (parameters.length > 0) { String text = step.getText(); Pattern pattern = implementation.getPattern(); Matcher matcher = pattern.matcher(text); checkState(matcher.find(), "unable to locate substitution parameters for pattern %s with input %s", pattern.pattern(), text); int groupCount = matcher.groupCount(); for (int i = 0; i < groupCount; i++) { String parameterAsString = matcher.group(i + 1); Parameter parameter = parameters[i]; Class<?> parameterType = parameter.getType(); Object converted; if (null == exampleValues) { converted = conversionService.convert(parameterAsString, parameterType); } else { Matcher tableMatcher = OUTLINE_PATTERN.matcher(parameterAsString); checkState(tableMatcher.find(), "Example table keys must be in the format <key>"); String key = tableMatcher.group(1); String tableValue = exampleValues.get(key); converted = conversionService.convert(tableValue, parameterType); } arguments[i] = converted; } } return arguments; }
From source file:org.jasig.cas.adaptors.x509.authentication.handler.support.X509CredentialsAuthenticationHandler.java
private boolean doesNameMatchPattern(final Principal principal, final Pattern pattern) { final boolean result = pattern.matcher(principal.getName()).matches(); if (log.isDebugEnabled()) { log.debug("Pattern Match: " + result + " [" + principal.getName() + "] against [" + pattern.pattern() + "]."); }/*from ww w. j ava 2 s . c o m*/ return result; }
From source file:org.kuali.kra.rules.SaveCustomAttributeRule.java
/** * Validates the format/length of custom attribute. * @param customAttribute The custom attribute to validate * @param errorKey The error key on the interface * @return//from w w w .ja v a 2 s . com */ private boolean validateAttributeFormat(CustomAttribute customAttribute, CustomAttributeDataType customAttributeDataType, String errorKey) { boolean isValid = true; Integer maxLength = customAttribute.getDataLength(); String attributeValue = customAttribute.getValue(); if ((maxLength != null) && (maxLength.intValue() < attributeValue.length())) { reportError(errorKey, RiceKeyConstants.ERROR_MAX_LENGTH, customAttribute.getLabel(), maxLength.toString()); isValid = false; } final ValidationPattern validationPattern = VALIDATION_CLASSES .get(customAttributeDataType.getDescription()); // if there is no data type matched, then set error ? Pattern validationExpression = validationPattern.getRegexPattern(); String validFormat = getValidFormat(customAttributeDataType.getDescription()); if (validationExpression != null && !ALL_REGEX.equals(validationExpression.pattern())) { if (customAttributeDataType.getDescription().equalsIgnoreCase(DATE)) { if (!attributeValue.matches(DATE_REGEX)) { reportError(errorKey, RiceKeyConstants.ERROR_INVALID_FORMAT, customAttribute.getLabel(), attributeValue, validFormat); isValid = false; } } else if (!validationExpression.matcher(attributeValue).matches()) { reportError(errorKey, KeyConstants.ERROR_INVALID_FORMAT_WITH_FORMAT, customAttribute.getLabel(), attributeValue, validFormat); isValid = false; } } if (isValid && customAttributeDataType.getDescription().equals("Date")) { if (!StringUtils.isEmpty(attributeValue)) { try { DateFormat dateFormat = DateFormat.getDateInstance(DateFormat.SHORT); dateFormat.setLenient(false); dateFormat.parse(attributeValue); } catch (ParseException e) { reportError(errorKey, KeyConstants.ERROR_DATE, attributeValue, customAttribute.getLabel()); isValid = false; } } } // validate BO data against the database contents String lookupClass = customAttribute.getLookupClass(); if (lookupClass != null && lookupClass.equals("org.kuali.kra.bo.KcPerson")) { if (customAttribute.getDataTypeCode().equals("1") && customAttribute.getLookupReturn().equals("userName")) { validFormat = getValidFormat(customAttributeDataType.getDescription()); KcPersonService kps = getKcPersonService(); KcPerson customPerson = kps.getKcPersonByUserName(customAttribute.getValue()); if (customPerson == null) { GlobalVariables.getErrorMap().putError(errorKey, RiceKeyConstants.ERROR_EXISTENCE, customAttribute.getLabel(), attributeValue, validFormat); return false; } else { return true; } } else { // can only validate for userName, if fullName, etc is used then a lookup // is assumed that a lookup is being used, in which case validation // is not necessary return true; } } else if (lookupClass != null && lookupClass.equals("org.kuali.kra.bo.ArgValueLookup")) { ArgValueLookupValuesFinder finder = new ArgValueLookupValuesFinder(); finder.setArgName(customAttribute.getLookupReturn()); List<KeyLabelPair> kv = finder.getKeyValues(); Iterator<KeyLabelPair> i = kv.iterator(); while (i.hasNext()) { KeyLabelPair element = (KeyLabelPair) i.next(); String label = element.getLabel().toLowerCase(); if (label.equals(attributeValue.toLowerCase())) { return true; } } validFormat = getValidFormat(customAttributeDataType.getDescription()); GlobalVariables.getErrorMap().putError(errorKey, RiceKeyConstants.ERROR_EXISTENCE, customAttribute.getLabel(), attributeValue, validFormat); return false; } else if (lookupClass != null) { Class boClass = null; try { boClass = Class.forName(lookupClass); } catch (ClassNotFoundException cnfE) { /* Do nothing, checked on input */ } if (isInvalid(boClass, keyValue(customAttribute.getLookupReturn(), customAttribute.getValue()))) { validFormat = getValidFormat(customAttributeDataType.getDescription()); GlobalVariables.getErrorMap().putError(errorKey, RiceKeyConstants.ERROR_EXISTENCE, customAttribute.getLabel(), attributeValue, validFormat); return false; } } return isValid; }
From source file:org.omegat.util.FileUtilTest.java
public void testCompileFileMask() { Pattern r = FileUtil.compileFileMask("Ab1-&*/**"); assertEquals("(?:|.*/)Ab1\\-\\&[^/]*(?:|/.*)", r.pattern()); }
From source file:org.kuali.kra.institutionalproposal.customdata.InstitutionalProposalCustomDataRuleImpl.java
/** * /* w w w. j a va2 s .co m*/ * This method is to validate the format/length of custom attribute * @param customAttribute * @param errorKey * @return */ private boolean validateAttributeFormat(CustomAttribute customAttribute, String errorKey) { CustomAttributeDataType customAttributeDataType = customAttribute.getCustomAttributeDataType(); String attributeValue = customAttribute.getValue(); if (customAttributeDataType == null && customAttribute.getDataTypeCode() != null) { customAttributeDataType = getCustomAttributeService() .getCustomAttributeDataType(customAttribute.getDataTypeCode()); } if (customAttributeDataType != null) { Integer maxLength = customAttribute.getDataLength(); if ((maxLength != null) && (maxLength.intValue() < attributeValue.length())) { GlobalVariables.getErrorMap().putError(errorKey, RiceKeyConstants.ERROR_MAX_LENGTH, customAttribute.getLabel(), maxLength.toString()); return false; } ValidationPattern validationPattern = null; try { validationPattern = (ValidationPattern) Class .forName(validationClasses.get(customAttributeDataType.getDescription())).newInstance(); if (customAttributeDataType.getDescription().equalsIgnoreCase(STRING)) { ((org.kuali.rice.kns.datadictionary.validation.charlevel.AnyCharacterValidationPattern) validationPattern) .setAllowWhitespace(true); } } catch (Exception e) { //do nothing } String validFormat = getValidFormat(customAttributeDataType.getDescription()); if (customAttributeDataType.getDescription().equalsIgnoreCase(STRING) || customAttributeDataType.getDescription().equalsIgnoreCase(NUMBER)) { Pattern validationExpression = validationPattern.getRegexPattern(); //String validFormat = getValidFormat(customAttributeDataType.getDescription()); if (validationExpression != null && !validationExpression.pattern().equals(DOT_STAR)) { if (!validationExpression.matcher(attributeValue).matches()) { GlobalVariables.getErrorMap().putError(errorKey, RiceKeyConstants.ERROR_INVALID_FORMAT, customAttribute.getLabel(), attributeValue, validFormat); return false; } } } else if (customAttributeDataType.getDescription().equalsIgnoreCase(DATE)) { if (!attributeValue.matches(DATE_REGEX)) { GlobalVariables.getErrorMap().putError(errorKey, RiceKeyConstants.ERROR_INVALID_FORMAT, customAttribute.getLabel(), attributeValue, validFormat); return false; } } // Pattern validationExpression = validationPattern.getRegexPattern(); // String validFormat = getValidFormat(customAttributeDataType.getDescription()); // if (validationExpression != null && !validationExpression.pattern().equals(DOT_STAR)) { // if (!validationExpression.matcher(attributeValue).matches()) { // GlobalVariables.getErrorMap().putError(errorKey, RiceKeyConstants.ERROR_INVALID_FORMAT, // customAttribute.getLabel(), attributeValue, validFormat); // return false; // } // } // validate BO data against the database contents String lookupClass = customAttribute.getLookupClass(); if (lookupClass != null && lookupClass.equals("org.kuali.kra.bo.KcPerson")) { if (customAttribute.getDataTypeCode().equals("1") && customAttribute.getLookupReturn().equals("userName")) { validFormat = getValidFormat(customAttributeDataType.getDescription()); KcPersonService kps = getKcPersonService(); KcPerson customPerson = kps.getKcPersonByUserName(customAttribute.getValue()); if (customPerson == null) { GlobalVariables.getErrorMap().putError(errorKey, RiceKeyConstants.ERROR_EXISTENCE, customAttribute.getLabel(), attributeValue, validFormat); return false; } else { return true; } } else { // can only validate for userName, if fullName, etc is used then a lookup // is assumed that a lookup is being used, in which case validation // is not necessary return true; } } else if (lookupClass != null && lookupClass.equals("org.kuali.kra.bo.ArgValueLookup")) { ArgValueLookupValuesFinder finder = new ArgValueLookupValuesFinder(); finder.setArgName(customAttribute.getLookupReturn()); List<KeyLabelPair> kv = finder.getKeyValues(); Iterator<KeyLabelPair> i = kv.iterator(); while (i.hasNext()) { KeyLabelPair element = (KeyLabelPair) i.next(); String label = element.getLabel().toLowerCase(); if (label.equals(attributeValue.toLowerCase())) { return true; } } validFormat = getValidFormat(customAttributeDataType.getDescription()); GlobalVariables.getErrorMap().putError(errorKey, RiceKeyConstants.ERROR_EXISTENCE, customAttribute.getLabel(), attributeValue, validFormat); return false; } else if (lookupClass != null) { Class boClass = null; try { boClass = Class.forName(lookupClass); } catch (ClassNotFoundException cnfE) { /* Do nothing, checked on input */ } if (isInvalid(boClass, keyValue(customAttribute.getLookupReturn(), customAttribute.getValue()))) { validFormat = getValidFormat(customAttributeDataType.getDescription()); GlobalVariables.getErrorMap().putError(errorKey, RiceKeyConstants.ERROR_EXISTENCE, customAttribute.getLabel(), attributeValue, validFormat); return false; } } } return true; }
From source file:org.kuali.kra.subaward.customdata.SubAwardCustomDataRuleImpl.java
/** * /*from w ww . ja v a 2s . c o m*/ * This method is to validate the format/length of custom attribute * @param customAttribute * @param errorKey * @return */ @SuppressWarnings("unchecked") private boolean validateAttributeFormat(CustomAttribute customAttribute, String errorKey) { CustomAttributeDataType customAttributeDataType = customAttribute.getCustomAttributeDataType(); String attributeValue = customAttribute.getValue(); if (customAttributeDataType == null && customAttribute.getDataTypeCode() != null) { customAttributeDataType = getCustomAttributeService() .getCustomAttributeDataType(customAttribute.getDataTypeCode()); } if (customAttributeDataType != null) { Integer maxLength = customAttribute.getDataLength(); if ((maxLength != null) && (maxLength.intValue() < attributeValue.length())) { GlobalVariables.getErrorMap().putError(errorKey, RiceKeyConstants.ERROR_MAX_LENGTH, customAttribute.getLabel(), maxLength.toString()); return false; } ValidationPattern validationPattern = null; try { validationPattern = (ValidationPattern) Class .forName(validationClasses.get(customAttributeDataType.getDescription())).newInstance(); if (customAttributeDataType.getDescription().equalsIgnoreCase(STRING)) { ((org.kuali.rice.kns.datadictionary.validation.charlevel.AnyCharacterValidationPattern) validationPattern) .setAllowWhitespace(true); } } catch (Exception e) { //do nothing } String validFormat = getValidFormat(customAttributeDataType.getDescription()); if (customAttributeDataType.getDescription().equalsIgnoreCase(STRING) || customAttributeDataType.getDescription().equalsIgnoreCase(NUMBER)) { Pattern validationExpression = validationPattern.getRegexPattern(); //String validFormat = getValidFormat(customAttributeDataType.getDescription()); if (validationExpression != null && !validationExpression.pattern().equals(DOT_STAR)) { if (!validationExpression.matcher(attributeValue).matches()) { GlobalVariables.getErrorMap().putError(errorKey, RiceKeyConstants.ERROR_INVALID_FORMAT, customAttribute.getLabel(), attributeValue, validFormat); return false; } } } else if (customAttributeDataType.getDescription().equalsIgnoreCase(DATE)) { if (!attributeValue.matches(DATE_REGEX)) { GlobalVariables.getErrorMap().putError(errorKey, RiceKeyConstants.ERROR_INVALID_FORMAT, customAttribute.getLabel(), attributeValue, validFormat); return false; } } String lookupClass = customAttribute.getLookupClass(); if (lookupClass != null && lookupClass.equals("org.kuali.kra.bo.KcPerson")) { if (customAttribute.getDataTypeCode().equals("1") && customAttribute.getLookupReturn().equals("userName")) { validFormat = getValidFormat(customAttributeDataType.getDescription()); KcPersonService kps = getKcPersonService(); KcPerson customPerson = kps.getKcPersonByUserName(customAttribute.getValue()); if (customPerson == null) { GlobalVariables.getErrorMap().putError(errorKey, RiceKeyConstants.ERROR_EXISTENCE, customAttribute.getLabel(), attributeValue, validFormat); return false; } else { return true; } } else { return true; } } else if (lookupClass != null && lookupClass.equals("org.kuali.kra.bo.ArgValueLookup")) { ArgValueLookupValuesFinder finder = new ArgValueLookupValuesFinder(); finder.setArgName(customAttribute.getLookupReturn()); List<KeyLabelPair> kv = finder.getKeyValues(); Iterator<KeyLabelPair> i = kv.iterator(); while (i.hasNext()) { KeyLabelPair element = (KeyLabelPair) i.next(); String label = element.getLabel().toLowerCase(); if (label.equals(attributeValue.toLowerCase())) { return true; } } validFormat = getValidFormat(customAttributeDataType.getDescription()); GlobalVariables.getErrorMap().putError(errorKey, RiceKeyConstants.ERROR_EXISTENCE, customAttribute.getLabel(), attributeValue, validFormat); return false; } else if (lookupClass != null && lookupClass.equals("org.kuali.kra.bo.ArgValueLookup")) { ArgValueLookupValuesFinder finder = new ArgValueLookupValuesFinder(); finder.setArgName(customAttribute.getLookupReturn()); List<KeyLabelPair> kv = finder.getKeyValues(); Iterator<KeyLabelPair> i = kv.iterator(); while (i.hasNext()) { KeyLabelPair element = (KeyLabelPair) i.next(); String label = element.getLabel().toLowerCase(); if (label.equals(attributeValue.toLowerCase())) { return true; } } validFormat = getValidFormat(customAttributeDataType.getDescription()); GlobalVariables.getErrorMap().putError(errorKey, RiceKeyConstants.ERROR_EXISTENCE, customAttribute.getLabel(), attributeValue, validFormat); return false; } else if (lookupClass != null) { Class boClass = null; try { boClass = Class.forName(lookupClass); } catch (ClassNotFoundException cnfE) { /* Do nothing, checked on input */ } if (isInvalid(boClass, keyValue(customAttribute.getLookupReturn(), customAttribute.getValue()))) { validFormat = getValidFormat(customAttributeDataType.getDescription()); GlobalVariables.getErrorMap().putError(errorKey, RiceKeyConstants.ERROR_EXISTENCE, customAttribute.getLabel(), attributeValue, validFormat); return false; } } } return true; }
From source file:com.hmsinc.epicenter.classifier.regex.RegexClassifier.java
/** * @param entry/*from w w w . ja v a 2s. co m*/ * @param cc * @return */ private boolean matchPattern(final Entry entry, final String cc) { final Pattern p = getPatternForEntry(entry); final boolean ret = p.matcher(cc).matches(); logger.trace("Match pattern {} for {}: {}", new Object[] { p.pattern(), cc, ret }); return ret; }
From source file:org.kuali.kra.award.customdata.AwardCustomDataRuleImpl.java
/** * //www . ja v a2 s. c o m * This method is to validate the format/length of custom attribute * @param customAttribute * @param errorKey * @return */ @SuppressWarnings("unchecked") private boolean validateAttributeFormat(CustomAttribute customAttribute, String errorKey) { CustomAttributeDataType customAttributeDataType = customAttribute.getCustomAttributeDataType(); String attributeValue = customAttribute.getValue(); if (customAttributeDataType == null && customAttribute.getDataTypeCode() != null) { customAttributeDataType = getCustomAttributeService() .getCustomAttributeDataType(customAttribute.getDataTypeCode()); } if (customAttributeDataType != null) { Integer maxLength = customAttribute.getDataLength(); if ((maxLength != null) && (maxLength.intValue() < attributeValue.length())) { GlobalVariables.getErrorMap().putError(errorKey, RiceKeyConstants.ERROR_MAX_LENGTH, customAttribute.getLabel(), maxLength.toString()); return false; } ValidationPattern validationPattern = null; try { validationPattern = (ValidationPattern) Class .forName(validationClasses.get(customAttributeDataType.getDescription())).newInstance(); if (customAttributeDataType.getDescription().equalsIgnoreCase(STRING)) { ((org.kuali.rice.kns.datadictionary.validation.charlevel.AnyCharacterValidationPattern) validationPattern) .setAllowWhitespace(true); } } catch (Exception e) { //do nothing } String validFormat = getValidFormat(customAttributeDataType.getDescription()); if (customAttributeDataType.getDescription().equalsIgnoreCase(STRING) || customAttributeDataType.getDescription().equalsIgnoreCase(NUMBER)) { Pattern validationExpression = validationPattern.getRegexPattern(); //String validFormat = getValidFormat(customAttributeDataType.getDescription()); if (validationExpression != null && !validationExpression.pattern().equals(DOT_STAR)) { if (!validationExpression.matcher(attributeValue).matches()) { GlobalVariables.getErrorMap().putError(errorKey, RiceKeyConstants.ERROR_INVALID_FORMAT, customAttribute.getLabel(), attributeValue, validFormat); return false; } } } else if (customAttributeDataType.getDescription().equalsIgnoreCase(DATE)) { if (!attributeValue.matches(DATE_REGEX)) { GlobalVariables.getErrorMap().putError(errorKey, RiceKeyConstants.ERROR_INVALID_FORMAT, customAttribute.getLabel(), attributeValue, validFormat); return false; } } // validate BO data against the database contents String lookupClass = customAttribute.getLookupClass(); if (lookupClass != null && lookupClass.equals("org.kuali.kra.bo.KcPerson")) { if (customAttribute.getDataTypeCode().equals("1") && customAttribute.getLookupReturn().equals("userName")) { validFormat = getValidFormat(customAttributeDataType.getDescription()); KcPersonService kps = getKcPersonService(); KcPerson customPerson = kps.getKcPersonByUserName(customAttribute.getValue()); if (customPerson == null) { GlobalVariables.getErrorMap().putError(errorKey, RiceKeyConstants.ERROR_EXISTENCE, customAttribute.getLabel(), attributeValue, validFormat); return false; } else { return true; } } else { // can only validate for userName, if fullName, etc is used then a lookup // is assumed that a lookup is being used, in which case validation // is not necessary return true; } } else if (lookupClass != null && lookupClass.equals("org.kuali.kra.bo.ArgValueLookup")) { ArgValueLookupValuesFinder finder = new ArgValueLookupValuesFinder(); finder.setArgName(customAttribute.getLookupReturn()); List<KeyLabelPair> kv = finder.getKeyValues(); Iterator<KeyLabelPair> i = kv.iterator(); while (i.hasNext()) { KeyLabelPair element = (KeyLabelPair) i.next(); String label = element.getLabel().toLowerCase(); if (label.equals(attributeValue.toLowerCase())) { return true; } } validFormat = getValidFormat(customAttributeDataType.getDescription()); GlobalVariables.getErrorMap().putError(errorKey, RiceKeyConstants.ERROR_EXISTENCE, customAttribute.getLabel(), attributeValue, validFormat); return false; } else if (lookupClass != null && lookupClass.equals("org.kuali.kra.bo.ArgValueLookup")) { ArgValueLookupValuesFinder finder = new ArgValueLookupValuesFinder(); finder.setArgName(customAttribute.getLookupReturn()); List<KeyLabelPair> kv = finder.getKeyValues(); Iterator<KeyLabelPair> i = kv.iterator(); while (i.hasNext()) { KeyLabelPair element = (KeyLabelPair) i.next(); String label = element.getLabel().toLowerCase(); if (label.equals(attributeValue.toLowerCase())) { return true; } } validFormat = getValidFormat(customAttributeDataType.getDescription()); GlobalVariables.getErrorMap().putError(errorKey, RiceKeyConstants.ERROR_EXISTENCE, customAttribute.getLabel(), attributeValue, validFormat); return false; } else if (lookupClass != null) { Class boClass = null; try { boClass = Class.forName(lookupClass); } catch (ClassNotFoundException cnfE) { /* Do nothing, checked on input */ } if (isInvalid(boClass, keyValue(customAttribute.getLookupReturn(), customAttribute.getValue()))) { validFormat = getValidFormat(customAttributeDataType.getDescription()); GlobalVariables.getErrorMap().putError(errorKey, RiceKeyConstants.ERROR_EXISTENCE, customAttribute.getLabel(), attributeValue, validFormat); return false; } } } return true; }
From source file:com.versatus.jwebshield.UrlPatternMatcher.java
/** * Match a URL against a pattern./*from w ww .ja v a 2 s . co m*/ * * @param url * String * @param pattern * String * @return boolean * @throws Exception */ public boolean matches(String url, String pattern) throws Exception { boolean result = false; logger.debug("matches: input - url=" + url + " | pattern=" + pattern); if (pattern == null || url == null) { throw new Exception("Input parameter(s) are blank!"); } Pattern p; if (pattern.contains("*")) { p = Pattern.compile(pattern.replace("*", "").replace("/", "\\/") + "$"); } else if (pattern.equalsIgnoreCase("/")) { p = Pattern.compile(pattern.replace("/", "\\/")); } else { p = Pattern.compile(pattern.replace(".", "\\.").replace("/", "\\/") + "$"); } Matcher matcher = p.matcher(url); logger.debug("matches: Original pattern=" + pattern + " | regex=" + p.pattern()); while (matcher.find()) { result = true; logger.debug("matches: group=" + matcher.group()); } logger.debug("Matching " + pattern + " against " + url + " | result=" + result); return result; }