2012-10-18 164 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這意味着錨定你的正則表達式「字的邊界。」