2

我正在进行文件搜索,我想排除其中包含min的文件,但我不想匹配部分单词。

所以我想排除:

一个名为的目录,一个名为min 的文件jhkjahdf-min.txt

但我不想排除:

一个名为mint.txt

感谢您在高级方面的帮助。您给出的正则表达式的解释将有很多额外的帮助。

我正在使用 PHP 的 preg_match() 函数

4

2 回答 2

1

有一些东西叫做单词边界(\b)。它们不消耗字符,但如果您从单词字符(字母、数字、下划线)转换为非单词字符,则匹配,反之亦然。所以这是第一个很好的近似值:

`\bmin\b`

现在,如果您也想将数字和下划线视为单词边界,它会变得有点复杂。然后,您需要所有正则表达式引擎都不支持的负前瞻和后瞻:

`(?<![a-zA-Z])min(?![a-zA-Z])`

这些也不会包含在匹配中(如果您完全关心它的话),而只是断言min既不在字母之前也不在其后。

于 2012-10-18T23:45:10.940 回答
0

你会想用它来锚定你的正则表达式,\b这意味着“单词边界”。

于 2012-10-18T23:45:03.297 回答