Android Pathpattern May 2026

Example:

<!-- Wrong --> <data android:pathPattern="user/*" /> <!-- Correct --> <data android:pathPattern="/user/*" /> Unlike regex .* , pathPattern ’s * requires at least one character. For example:

If you’ve worked with intent filters, you’ve likely seen the path , pathPrefix , and pathPattern attributes inside a <data> tag. While path and pathPrefix are straightforward, pathPattern introduces a mini-language of wildcards that gives you flexible, powerful matching—but it also comes with a few hidden traps. android pathpattern

In Android development, deep linking is a powerful feature that allows you to launch your app directly from a web URL. But how do you tell your app which URL should open which screen? Enter PathPattern .

In most regex engines, * means "zero or more of the previous character". But in PathPattern , the * acts like a greedy wildcard that matches any sequence of characters . Example: &lt;

| Symbol | Meaning | |--------|---------| | * | Matches zero or more occurrences of the preceding character (but be careful – see below). | | .* | Matches any sequence of characters, including an empty sequence. |

<data android:pathPattern="/user/*/settings" /> Matches /user/john/settings but /user//settings . 3. URL Encoding Matters If your actual URL contains encoded characters (e.g., %20 for space), PathPattern matches against the decoded path. So if you expect a space, match it as a literal space, not %20 . 4. No Regex Character Classes You cannot use [0-9] , \d , + , ? , etc. The pattern language is intentionally minimal. 5. Query Parameters and Fragments are Ignored PathPattern only looks at the path portion of the URL. Query parameters ( ?key=value ) and fragments ( #section ) are not considered. In Android development, deep linking is a powerful

In this article, we’ll break down how PathPattern works, when to use it, and how to avoid its most common pitfalls. PathPattern is an attribute used within an intent filter’s <data> tag. It allows you to match a subset of a URL’s path using simple wildcard expressions.