<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Gitignore on PlumePHP</title><link>https://plumephp.com/tags/gitignore/</link><description>Recent content in Gitignore on PlumePHP</description><generator>Hugo</generator><language>zh-CN</language><lastBuildDate>Mon, 28 Sep 2026 10:00:00 +0800</lastBuildDate><atom:link href="https://plumephp.com/tags/gitignore/index.xml" rel="self" type="application/rss+xml"/><item><title>通配符与 Glob 匹配：与正则的分野与落地</title><link>https://plumephp.com/others-glob-file-matching/</link><pubDate>Mon, 28 Sep 2026 10:00:00 +0800</pubDate><guid>https://plumephp.com/others-glob-file-matching/</guid><description>&lt;h2 id="引言"&gt;引言&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;*.md&lt;/code&gt;、&lt;code&gt;src/**/*.ts&lt;/code&gt;、&lt;code&gt;.gitignore&lt;/code&gt; 里的 &lt;code&gt;node_modules/&lt;/code&gt;——&lt;strong&gt;glob 匹配&lt;/strong&gt;无处不在，但它和正则有个最常被忽略的差异：&lt;strong&gt;glob 匹配&amp;quot;文件名路径&amp;quot;，正则匹配&amp;quot;任意文本&amp;quot;&lt;/strong&gt;。本文把 glob 讲透：先讲基础通配符（&lt;code&gt;*&lt;/code&gt; &lt;code&gt;?&lt;/code&gt; &lt;code&gt;[]&lt;/code&gt;）与 Shell 展开的机制，再讲与正则的本质分野（锚定语义、&lt;code&gt;**&lt;/code&gt; 递归、大小写），接着讲跨语言差异（gitignore 的特殊规则、Python &lt;code&gt;glob&lt;/code&gt;/&lt;code&gt;fnmatch&lt;/code&gt;、Node &lt;code&gt;fast-glob&lt;/code&gt;），再讲 extglob/brace 展开这些进阶语法，最后给性能陷阱（隐藏文件、重叠匹配、大目录）与配置文件 glob 的最佳实践。&lt;/p&gt;</description></item></channel></rss>