What is the Regex Dotall Flag
The dotall flag (sometimes called singleline flag) modifies regex behavior so that the dot (.) metacharacter matches any character including newlines. Normally, the dot matches any character except newline characters by default.
Basic Syntax and Usage
Most regex engines use syntax like:
re.DOTALL # Python
Pattern.DOTALL # Java
Pattern.S # Perl/Ruby
This flag changes how the dot character works in your regex patterns.
Practical Example Comparison
Here's a regex dotall flag example with sample text:
Sample text:
"Hello\
World"
Without dotall flag:
- Pattern: `H.llo` matches "Hello"
- Pattern: `H.World` does NOT match
With dotall flag:
- Pattern: `H.llo` matches "Hello"
- Pattern: `H.World` matches "Hello\
World"
Common Use Cases
The regex dotall flag is useful when:
- Extracting content between multi-line tags
- Matching text that spans multiple lines
- Processing log files with line breaks
Example: Extract all text between <note> tags
import re
pattern = re.compile(r'<note>(.*)</note>', re.DOTALL)