Ein wenig, um das Gespräch zu spät, aber ich über diese Antwort von Google gestolpert ...
Es gibt eine reine JDK-Implementierung ist here in der matchingSubset() Funktion, die durch propertyzurück Matches durch Iterieren über die Eigenschaften findet(). Wenn Sie wirklich eine Regex verwenden müssten, könnte sie ziemlich einfach angepasst werden.
Code-Snippet unten, falls gebucht der Link geht schlecht:
/**
* Copyright 2007 University Of Southern California
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
public Properties matchingSubset(String prefix, boolean keepPrefix) {
Properties result = new Properties();
// sanity check
if (prefix == null || prefix.length() == 0) {
return result;
}
String prefixMatch; // match prefix strings with this
String prefixSelf; // match self with this
if (prefix.charAt(prefix.length() - 1) != '.') {
// prefix does not end in a dot
prefixSelf = prefix;
prefixMatch = prefix + '.';
} else {
// prefix does end in one dot, remove for exact matches
prefixSelf = prefix.substring(0, prefix.length() - 1);
prefixMatch = prefix;
}
// POSTCONDITION: prefixMatch and prefixSelf are initialized!
// now add all matches into the resulting properties.
// Remark 1: #propertyNames() will contain the System properties!
// Remark 2: We need to give priority to System properties. This is done
// automatically by calling this class's getProperty method.
String key;
for (Enumeration e = propertyNames(); e.hasMoreElements();) {
key = (String) e.nextElement();
if (keepPrefix) {
// keep full prefix in result, also copy direct matches
if (key.startsWith(prefixMatch) || key.equals(prefixSelf)) {
result.setProperty(key,
getProperty(key));
}
} else {
// remove full prefix in result, dont copy direct matches
if (key.startsWith(prefixMatch)) {
result.setProperty(key.substring(prefixMatch.length()),
getProperty(key));
}
}
}
// done
return result;
}
danke Gary, diese Frühjahr Fehlercodes, Resolver, Prozessoren, Ressourcen-Bundles ... es ist so chaotisch, das war total verwirrt ... Wenn die Feder Validierung nicht im Frühjahr Weg und die Form Taglib-Stil getan wird, ist es hart – lisak
@lisak Kein Problem - froh zu helfen. Der Frühling ist großartig, aber manchmal ist es am besten, es einfach zu halten. –