Я пытаюсь определить набор правил, которые будут вычислять маску на основе числа, которое оно задано. Например, я пытаюсь вернуть маску 8472952424 любого числа, начинающегося с 12, 13, 14, или вернуть 847235XXXX для любого числа, которое начинается с 7 или 8.Использование регулярного выражения для определения масок для чисел в Java
Номера ввода 4-значные целые числа и возврат является строкой. Нужно ли преобразовывать целые числа в строку, прежде чем я буду использовать регулярное выражение, и я также не уверен, как создавать выражения.
Редактировать У меня слишком много критериев, которые можно выполнить с помощью отдельных операторов if для каждого случая. Я соответствующие добавочные номера для масок, так что может быть вставлена правильно на базе Cisco CallManager (в случае, если вам интересно)
Edit
Это то, что я сделал для одного из случаев, но это по-прежнему не правильно соответствие:
public String lookupMask(int ext){
//convert to String
StringBuilder sb = new StringBuilder();
sb.append(ext);
String extString = sb.toString();
//compile and match pattern
Pattern p = Pattern.compile("^[12|13|14|15|17|19|42]");
Matcher m = p.matcher(extString);
if(m.matches()){
return "8472952424";
}
return null;
}
Да вам нужно преобразовать в 'String' – Reimeus
http://docs.oracle.com/javase/7/docs/api/java/util/regex/Pattern.html – nachokk
Я не» t знать, нужно ли преобразовать их в 'String'. Четырехзначное целое число, начинающееся с 12, 13 или 14, будет «1200 <= x && x <= 1499', правильно? Трудно точно сказать, что вы пытаетесь сделать, и как (и почему) вы создаете свои маски. И почему вы думаете, что regex будет лучшим вариантом (хотя, если вам нужны регулярные выражения для этого, то да, вам нужно преобразовать в 'String'). – iamnotmaynard