我想寫正則表達式來限制某些字符。要限制的字符取決於各種用戶的要求。正則表達式來限制某些特殊字符
我想使用這個正則表達式 - [(char1|char2|char3|...)$]
注意:每個字符將來自需求。
如果用戶輸入的字符串匹配任何字符,我會返回true。現在, 我想知道的是天氣這個表達式適用於所有條件嗎?
例如 - requirement1 = .:, requirement2 = .:&%
我將concatinate在每個字符之間|
,然後我將產生在Java正則表達式。這適用於我的要求1,但不適用於要求2。
我的Java代碼示例,
String requirement = ":>&%";
String regExp1 = null;
for (int i = 0; i < requirement.length(); i++) {
regExp1 = "[(" + requirement.charAt(i);
if (i - 1 != requirement.length()) {
regExp1.concat("|");
}
}
if (regExp1 != null) {
regExp1.concat(")]$");
}
Pattern p = Pattern.compile(regExp);
Matcher m = p.matcher(arg);
if (m.find())
return true;
else
return false;
我怎麼能產生標準的正則表達式?
請添加應該生成正則表達式的代碼。 – Manu
你需要記住特殊字符,點是正則表達式中的一個特殊字符...... – f1sh
'[(char1 | char2 | char3 | ...)$]'是對字符類與分組的誤解。 [使用不需要的字符類會導致意外問題。](http://stackoverflow.com/questions/34765780/regex-expression-not-working-with-once-or-none/34766090#34766090) –