Regex Class — spring-boot Architecture
Architecture documentation for the Regex class in Regex.java from the spring-boot codebase.
Entity Profile
Source Code
buildpack/spring-boot-buildpack-platform/src/main/java/org/springframework/boot/buildpack/platform/docker/type/Regex.java lines 37–121
final class Regex implements CharSequence {
static final Pattern DOMAIN;
static {
Regex component = Regex.oneOf("[a-zA-Z0-9]", "[a-zA-Z0-9][a-zA-Z0-9-]*[a-zA-Z0-9]");
Regex dotComponent = Regex.group("[.]", component);
Regex colonPort = Regex.of("[:][0-9]+");
Regex dottedDomain = Regex.group(component, dotComponent.oneOrMoreTimes());
Regex dottedDomainAndPort = Regex.group(component, dotComponent.oneOrMoreTimes(), colonPort);
Regex nameAndPort = Regex.group(component, colonPort);
DOMAIN = Regex.oneOf(dottedDomain, nameAndPort, dottedDomainAndPort, "localhost").compile();
}
private static final Regex PATH_COMPONENT;
static {
Regex segment = Regex.of("[a-z0-9]+");
Regex separator = Regex.group("[._-]{1,2}");
Regex separatedSegment = Regex.group(separator, segment).oneOrMoreTimes();
PATH_COMPONENT = Regex.of(segment, Regex.group(separatedSegment).zeroOrOnce());
}
static final Pattern PATH;
static {
Regex component = PATH_COMPONENT;
Regex slashComponent = Regex.group("[/]", component);
Regex slashComponents = Regex.group(slashComponent.oneOrMoreTimes());
PATH = Regex.of(component, slashComponents.zeroOrOnce()).compile();
}
static final Pattern TAG = Regex.of("^[\\w][\\w.-]{0,127}").compile();
static final Pattern DIGEST = Regex.of("^[A-Za-z][A-Za-z0-9]*(?:[-_+.][A-Za-z][A-Za-z0-9]*)*[:][[A-Fa-f0-9]]{32,}")
.compile();
private final String value;
private Regex(CharSequence value) {
this.value = value.toString();
}
private Regex oneOrMoreTimes() {
return new Regex(this.value + "+");
}
private Regex zeroOrOnce() {
return new Regex(this.value + "?");
}
Pattern compile() {
return Pattern.compile("^" + this.value + "$");
}
@Override
public int length() {
return this.value.length();
}
@Override
public char charAt(int index) {
return this.value.charAt(index);
}
@Override
public CharSequence subSequence(int start, int end) {
return this.value.subSequence(start, end);
}
@Override
public String toString() {
return this.value;
}
private static Regex of(CharSequence... expressions) {
return new Regex(String.join("", expressions));
}
private static Regex oneOf(CharSequence... expressions) {
return new Regex("(?:" + String.join("|", expressions) + ")");
}
private static Regex group(CharSequence... expressions) {
return new Regex("(?:" + String.join("", expressions) + ")");
}
}
Source
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free