blob: 903d7ace0d23f0cd004f1ec78b05ee1b6a6a9304 [file] [log] [blame]
<!DOCTYPE html>
<!--
| Generated by Apache Maven Doxia Site Renderer 2.0.0 from src/site/markdown/exclusion_expression.md at 2025-09-13
| Rendered using Apache Maven Fluido Skin 2.1.0
-->
<html xmlns="http://www.w3.org/1999/xhtml" lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<meta name="generator" content="Apache Maven Doxia Site Renderer 2.0.0" />
<title>RAT Exclusion Expressions – Apache RAT™ Core</title>
<link rel="stylesheet" href="./css/apache-maven-fluido-2.1.0.min.css" />
<link rel="stylesheet" href="./css/site.css" />
<link rel="stylesheet" href="./css/print.css" media="print" />
<script src="./js/apache-maven-fluido-2.1.0.min.js"></script>
<link href="https://creadur.apache.org/font/matesc.css" type="text/css" rel="stylesheet" />
</head>
<body>
<a class="github-fork-ribbon right-top" href="https://github.com/apache/creadur-rat" data-ribbon="Fork me on GitHub">Fork me on GitHub</a>
<div class="container-fluid container-fluid-top">
<header>
<div id="banner">
<div class="pull-left"><div id="bannerLeft"><h1><a href="https://www.apache.org/"><img src="https://www.apache.org/img/asf_logo.png" alt="The Apache Software Foundation" /> Apache RAT</a></h1></div></div>
<div class="pull-right"></div>
<div class="clear"><hr/></div>
</div>
<div id="breadcrumbs">
<ul class="breadcrumb">
<li id="publishDate">Last Published: 2025-09-13<span class="divider">|</span>
</li>
<li id="projectVersion">Version: 0.17-SNAPSHOT<span class="divider">|</span></li>
<li><a href="https://www.apache.org/">Apache</a><span class="divider">/</span></li>
<li><a href="../../">Creadur</a><span class="divider">/</span></li>
<li><a href="../">RAT</a><span class="divider">/</span></li>
<li><a href="index.html">Apache RAT™ Core</a><span class="divider">/</span></li>
<li class="active">RAT Exclusion Expressions</li>
</ul>
</div>
</header>
<div class="row-fluid">
<header id="leftColumn" class="span2">
<nav class="well sidebar-nav">
<ul class="nav nav-list">
<li class="nav-header">Parent Project</li>
<li><a href="../index.html">Apache Creadur RAT</a></li>
<li class="nav-header">Project Documentation</li>
<li><a href="project-info.html"><span class="icon-chevron-right"></span>Project Information</a></li>
<li><a href="project-reports.html"><span class="icon-chevron-right"></span>Project Reports</a></li>
<li class="nav-header">Apache RAT™</li>
<li><a href="../index.html">Introducing RAT</a></li>
<li><a href="../download_rat.cgi">Downloads</a></li>
<li><a href="../changes.html">Changes</a></li>
<li class="nav-header">RAT from the Command Line</li>
<li><a href="../apache-rat/index.html">Command Line Introduction</a></li>
<li><a href="../apache-rat/cli_options.html">Command Line Options</a></li>
<li><a href="../apache-rat-core/exclusion_expression.html">Exclusion Expressions</a></li>
<li><a href="../apache-rat/standard_collections.html">Standard Collections</a></li>
<li class="nav-header">RAT from Ant</li>
<li><a href="../apache-rat-tasks/index.html">Ant Task Introduction</a></li>
<li><a href="../apache-rat-tasks/ant_options.html">Ant Elements and Attributes</a></li>
<li class="nav-header">RAT from Maven</li>
<li><a href="../apache-rat-plugin/index.html">Maven Plugin Introduction</a></li>
<li><a href="../apache-rat-plugin/mvn_options.html">Maven Options</a></li>
<li><a href="../apache-rat-plugin/examples/index.html">Maven Examples</a></li>
<li class="nav-header">Configuring RAT</li>
<li><a href="../apache-rat/name_xref.html">Option Name Cross Reference</a></li>
<li><a href="../apache-rat/default_licenses.html">Default Licenses</a></li>
<li><a href="../apache-rat/default_matchers.html">Default Matchers</a></li>
<li><a href="../license_def.html">Defining New Licenses</a></li>
<li><a href="../apache-rat/xsd.html">Configuration XSD</a></li>
<li><a href="https://gitbox.apache.org/repos/asf/creadur-rat/blob/master/apache-rat-core/src/main/resources/org/apache/rat/default.xml">Default Configuration</a></li>
<li><a href="../apache-rat/detecting_generated_files.html">Detecting Generated Files</a></li>
<li class="nav-header">RAT Output</li>
<li><a href="../apache-rat/output/example.html">Standard Output Example</a></li>
<li><a href="https://gitbox.apache.org/repos/asf/creadur-rat/blob/master/apache-rat-core/src/main/resources/org/apache/rat/rat-report.xsd">Output XSD</a></li>
<li><a href="https://gitbox.apache.org/repos/asf/creadur-rat/blob/master/apache-rat-core/src/main/resources/org/apache/rat/plain-rat.xsl">XSLT - Plain text</a></li>
<li><a href="https://gitbox.apache.org/repos/asf/creadur-rat/blob/master/apache-rat-core/src/main/resources/org/apache/rat/missing-headers.xsl">XSLT - Missing headers list</a></li>
<li><a href="https://gitbox.apache.org/repos/asf/creadur-rat/blob/master/apache-rat-core/src/main/resources/org/apache/rat/unapproved-licenses.xsl">XSLT - Unapproved licenses list</a></li>
<li class="nav-header">Developing RAT</li>
<li><a href="../architecture.html">Architecture</a></li>
<li><a href="../apidocs/index.html">Javadocs</a></li>
<li><a href="../apache-rat-core/development/document_name.html">Document Name concept</a></li>
<li><a href="../development/ui_implementation.html">UI Development</a></li>
<li><a href="../apache-rat-core/development/write_file_processor.html">Writing a File Processor</a></li>
<li class="nav-header">Apache Creadur™</li>
<li><a href="../..">Creadur Project Home</a></li>
<li><a href="../../tentacles">Apache Tentacles</a></li>
<li><a href="../../whisker">Apache Whisker</a></li>
<li><a href="https://www.apache.org/security/">Security</a></li>
<li><a href="https://www.apache.org/licenses/">License</a></li>
<li><a href="https://privacy.apache.org/policies/privacy-policy-public.html">Privacy</a></li>
<li><a href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
<li><a href="https://www.apache.org/foundation/thanks.html">Thanks</a></li>
<li class="nav-header">The Apache Software Foundation</li>
<li><a href="https://www.apache.org/foundation">About the Foundation</a></li>
<li><a href="https://projects.apache.org">The projects</a></li>
<li><a href="https://people.apache.org">The people</a></li>
<li><a href="https://www.apache.org/foundation/how-it-works.html">How we work</a></li>
<li><a href="https://www.apache.org/foundation/how-it-works.html#history">Our history</a></li>
<li><a href="https://blogs.apache.org/foundation/">News</a></li>
<li class="nav-header">Contribute</li>
<li><a href="https://www.apache.org/foundation/getinvolved.html">Get Involved</a></li>
<li class="nav-header">Committer Info</li>
<li><a href="https://www.apache.org/dev/committers.html">ASF Committers&apos; FAQ</a></li>
<li><a href="https://www.apache.org/dev/new-committers-guide.html">New Committers Guide</a></li>
<li><a href="https://gitbox.apache.org/repos/asf/creadur-site/blob/asf-site/README.md">How to publish this site</a></li>
<li><a href="https://community.apache.org/">Community</a></li>
<li><a href="https://www.apache.org/legal/">Legal</a></li>
<li><a href="https://www.apache.org/foundation/marks/">Branding</a></li>
<li><a href="https://www.apache.org/press/">Media Relations</a></li>
</ul>
</nav>
<div class="well sidebar-nav">
<div id="poweredBy">
<div class="clear"></div>
<div class="clear"></div>
<a href="https://maven.apache.org/" class="builtBy"><img class="builtBy" src="https://maven.apache.org/images/logos/maven-feather.png" /> Maven</a>
</div>
</div>
</header>
<main id="bodyColumn" class="span10">
<!---
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
this work for additional information regarding copyright ownership.
The ASF licenses this file to You under the Apache License, Version 2.0
(the "License"); you may not use this file except in compliance with
the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<section><a id="RAT_Exclusion_Expressions"></a>
<h1>RAT Exclusion Expressions</h1>
<p>RAT uses a variation on the Ant or Git exclusion syntax.</p>
<ul>
<li><code>?</code> matches a single character. For example &#x2018;ca?&#x2019; will match &#x2018;cat&#x2019; and &#x2018;can&#x2019; but not &#x2018;call&#x2019; or the abbreviation for california (or Canada) &#x2018;CA&#x2019;.</li>
<li><code>*</code> matches zero or more characters. For example &#x2018;ca*&#x2019; will match &#x2018;cat&#x2019;, &#x2018;can&#x2019;, &#x2018;call&#x2019; and the abbreviation for california (or Canada) &#x2018;CA&#x2019;.</li>
<li><code>**</code> matches zero or more directories. For example &#x2018;**/ca?&#x2019; will match &#x2018;my/cat&#x2019;, &#x2018;my/can&#x2019;, &#x2018;the/cat&#x2019;, &#x2018;the/can&#x2019;, &#x2018;cat&#x2019; and &#x2018;can&#x2019;.</li>
<li><code>!</code> reverses the meaning of the expression. Example &#x201c;!ca?&#x201d; will not match &#x201c;cat&#x201d; or &#x201c;can&#x201d;. See include/exclude notes below.</li>
</ul>
<p>The table below shows an example of how the <code>*</code> and <code>**</code> differ and interact.</p>
<table class="table table-striped">
<thead>
<tr class="a">
<th> </th>
<th><code>foo/x/y</code></th>
<th><code>b/foo</code></th>
<th><code>b/foo/x</code></th>
<th><code>a/b/foo</code></th>
<th><code>foo</code></th>
<th><code>a/b/foo/x/y</code></th>
<th><code>a/b/foo/x</code></th>
<th><code>foo/x</code></th>
<th><code>b/foo/x/y</code></th></tr></thead><tbody>
<tr class="b">
<td><code>foo</code></td>
<td>F</td>
<td>F</td>
<td>F</td>
<td>F</td>
<td>T</td>
<td>F</td>
<td>F</td>
<td>F</td>
<td>F</td></tr>
<tr class="a">
<td><code>foo/*</code></td>
<td>F</td>
<td>F</td>
<td>F</td>
<td>F</td>
<td>F</td>
<td>F</td>
<td>F</td>
<td>T</td>
<td>F</td></tr>
<tr class="b">
<td><code>foo/**</code></td>
<td>T</td>
<td>F</td>
<td>F</td>
<td>F</td>
<td>T</td>
<td>F</td>
<td>F</td>
<td>T</td>
<td>F</td></tr>
<tr class="a">
<td><code>*/foo</code></td>
<td>F</td>
<td>T</td>
<td>F</td>
<td>F</td>
<td>F</td>
<td>F</td>
<td>F</td>
<td>F</td>
<td>F</td></tr>
<tr class="b">
<td><code>*/foo/*</code></td>
<td>F</td>
<td>F</td>
<td>T</td>
<td>F</td>
<td>F</td>
<td>F</td>
<td>F</td>
<td>F</td>
<td>F</td></tr>
<tr class="a">
<td><code>*/foo/**</code></td>
<td>F</td>
<td>T</td>
<td>T</td>
<td>F</td>
<td>F</td>
<td>F</td>
<td>F</td>
<td>F</td>
<td>T</td></tr>
<tr class="b">
<td><code>**/foo</code></td>
<td>F</td>
<td>T</td>
<td>F</td>
<td>T</td>
<td>T</td>
<td>F</td>
<td>F</td>
<td>F</td>
<td>F</td></tr>
<tr class="a">
<td><code>**/foo/*</code></td>
<td>F</td>
<td>F</td>
<td>T</td>
<td>F</td>
<td>F</td>
<td>F</td>
<td>T</td>
<td>T</td>
<td>F</td></tr>
<tr class="b">
<td><code>**/foo/**</code></td>
<td>T</td>
<td>T</td>
<td>T</td>
<td>T</td>
<td>T</td>
<td>T</td>
<td>T</td>
<td>T</td>
<td>T</td></tr></tbody>
</table>
<section><a id="Inclusion.2FExclusion_Notes"></a>
<h2>Inclusion/Exclusion Notes</h2>
<p>Patterns that are excluded may be superseded by patterns that are included.</p>
<p>For example: the exclusion pattern &#x2018;ca*&#x2019; used in conjunction with the include &#x2018;cat&#x2019; would result in the file &#x2018;cat&#x2019; being included but &#x2018;can&#x2019;, &#x2018;call&#x2019; and the abbreviation for california (or Canada) &#x2018;CA&#x2019; being excluded.</p>
<p>When processed a negated exclusion results in an inclusion, and a negated inclusion results in an exclusion.</p>
<p><strong>Once a file is explicitly included it can not be excluded.</strong></p></section><section><a id="Directory_separation_characters"></a>
<h2>Directory separation characters</h2>
<p>Patterns may use either &#x2018;/&#x2019; or &#x2018;\&#x2019; as the path separation character. &#x2018;/&#x2019; is recommended.</p></section><section><a id="Case_sensitivity"></a>
<h2>Case sensitivity</h2>
<p>The case sensitivity of the matching patterns depends upon the file system in use. If the file is case-sensitive then the matches are case-sensitive.</p></section></section> </main>
</div>
</div>
<hr/>
<footer>
<div class="container-fluid">
<div class="row-fluid">
Copyright &copy; 2016-2025 The Apache Software Foundation, Licensed under the Apache License, Version 2.0.
Apache Creadur, Creadur, Apache RAT, Apache Tentacles, Apache Whisker, Apache and the ASF logo are trademarks
of The Apache Software Foundation.
Oracle and Java are registered trademarks of Oracle and/or its affiliates.
All other marks mentioned may be trademarks or registered trademarks of their respective owners.
</div>
</div>
</footer>
</body>
</html>