Java RegEx meta character . and ordinary dot?
Interview Questions practice on Codemia
Over 8,000 real interview questions from top companies, searchable by company and role.
Introduction
Regular expressions, commonly known as regex or regexp, are powerful tools used in programming for pattern matching within strings. They are supported by various languages, including Java, and are frequently used for searching, replacing, and validating string data. One of the most versatile components of regex is the meta character ., often referred to as the dot or period character. In this article, we’ll explore the different uses of the dot in Java's regex, distinguishing between its function as a meta character and as an ordinary character.
The Meta Character .
In Java regex, the dot . is a meta character that matches any single character except a newline (\n). It serves as a wildcard character, making it extremely useful for flexible pattern matching.
Example:
Suppose you have a string "cat bat mat pat", and you want to find all three-letter words that follow the pattern ?at. The regex pattern would be:
Here’s how you can use this pattern in a Java program:
In the example above, the pattern ".at" matches any word where the first character can be anything, and the next two characters are "at".
Escaping the Dot: The Ordinary Character .
When you need to match a literal dot (period) in the string—such as in filenames or IP addresses—you have to escape the dot. This is done using a backslash \, forming the pattern "\.".
Example:
Consider an IP address string "127.0.0.1". To match the dots in the IP address, the regex pattern should be:
Here's a demonstration in a Java program:
In this case, each dot in the IP address is matched as a literal character, and the program just prints their positions within the string.
Comparison Table
Here's a summary table outlining the different uses of the dot in regex:
| Dot Usage | Description | Java Regex Pattern | Example |
Meta Character . | Matches any single character except newline. | . | a.c -> abc, adc |
Ordinary Dot . | Matches the literal dot character using escaping. | \\. | 127.0.0.1 |
Additional Subtopics
Multiline Mode
In some cases, you might want the dot . to include newline characters as part of its match. This can be achieved in Java by enabling the DOTALL mode.
In this mode, the dot matches all characters, including newlines.
Combining with Other Meta Characters
The versatility of the dot increases when combined with other regex constructs like *, +, and {n,m}.
.*- Matches any sequence of characters (except newline), including none..+- Matches any sequence of characters (except newline), but at least one..{n,m}- Matches betweennandmoccurrences of any character (except newline).
Performance Considerations
When leveraging the dot character, especially with qualifiers like .* or .+, be cautious of performance impacts. Greedy matching can lead to inefficiencies, especially with large texts. Sometimes, using non-greedy quantifiers like .*? can optimize performance when specific patterns are concerned.
Conclusion
The dot . character in Java regex is profoundly flexible, serving dual roles depending on context—acting both as a meta character for wildcard matching and as an ordinary dot when escaped. Mastery of its applications allows developers to efficiently handle various string processing tasks with precision and creativity. Understanding and leveraging its power can boost your capabilities in text manipulation and offer elegant solutions to complex string matching problems.
Related reading
- Java ResultSet how to check if there are any results
- Java RMI adding numbers
- Java Round up Any Number
- Java Runtime.getRuntime getting output from executing a command line program
- Java SafeVarargs annotation, does a standard or best practice exist?
- Java SE 6 vs. JRE 1.6 vs. JDK 1.6 - What do these mean?
- Java Security Illegal key size or default parameters?
- Java Serializable Object to Byte Array

OOD Fundamentals
Master object-oriented design from first principles, SOLID, design patterns, and classic interview problems with hands-on coding.
View the courseTrack what you have practised
A free account saves your progress, solutions and study plan across every problem on Codemia.
Interview Questions practice on Codemia
Over 8,000 real interview questions from top companies, searchable by company and role.