Могу ли я определить свои собственные классы персонажей?
Нет, вы не можете.
Лично, когда у меня есть (немного) сложное регулярное выражение, я разбиваю регулярное выражение на более мелкие суб-регулярные выражения и затем "склеиваю" их вместе с String.format(...)
следующим образом:
public static boolean isValidIP4(String address) {
String block_0_255 = "(0|[1-9]\\d|2[0-4]\\d|25[0-5])";
String regex = String.format(
"%s(\\.%s){3}",
block_0_255, block_0_255
);
return address.matches(regex);
}
, который гораздо удобнее для чтения, чем отдельный шаблон:
"(0|[1-9]\\d|2[0-4]\\d|25[0-5])(\\.(0|[1-9]\\d|2[0-4]\\d|25[0-5])){3}"
Обратите внимание, что это всего лишь быстрый пример: проверка IP-адресов, вероятно, может быть лучше выполнена классом из пакета java.net
, и если вы сделаете это таким образом, шаблон следует поместить вне метода и предварительно -compiled.
Будьте осторожны с %
знаками внутри вашего шаблона!