2012-10-18 136 views
2

我在做一个文件搜索,我想排除其中包含min的文件,但我不想匹配部分文字。正则表达式 - 匹配整个字符串或模式

,所以我想排除:

一个名为min 也是一档名为jhkjahdf-min.txt

但我不想排除:

一个文件名为mint.txt

谢谢你在先进的帮助。你给出的正则表达式的解释会有很多额外的帮助。

我使用PHP的的preg_match()函数

回答

1

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

`\bmin\b` 

现在,如果你要考虑数字和下划线的字边界,也它变得更复杂一些。然后,你需要负向前看符号和lookbehinds,这并非所有的正则表达式引擎支持:

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

这些也将不列入比赛(如果你关心的话),而只是断言,min既不是在之前或之后没有一封信。

0

你会想\b这意味着锚定你的正则表达式“字的边界。”