2013-11-14 114 views

回答

6

即使它們沒有#後面的文件名,也會找到文件名。

(\w+\.\w+)[^/]*$ 

說明:

(\w+\.\w+)

此相匹配的文件名本身,\w就是一個字字符(同[a-zA-Z0-9_])。因此,它的1+單詞字符,句號(.自己匹配任何字符,需要\.才能與實際的.相匹配),然後是1個以上單詞字符。

[^/]*

匹配0+不在/字符。但是,所有的單詞字符將得到投入\w+比賽之前(因爲它是第一個評價,+會嘗試儘可能多的,因爲它可以匹配),所以在你的榜樣此相匹配的#200

$

匹配隊伍的盡頭。這就需要a.directory不會匹配/a.directory/file.txt

+0

使用匹配的組1作爲文件名 – OGHaza

+0

謝謝!第一組適合我的需求。你介意用一句話來解釋它嗎?我正在嘗試學習正則表達式。 – csharper

+0

補充說明 – OGHaza

1

假設你正在使用PCRE,您可以使用模式:

'[^/]*(?=#)' 
2

你可以使用這個表達式:

/\/([^\/#]*)#/ 

並使用匹配的組#1你的價值file.cs

+0

更容易理解。謝謝!!!! – csharper

相關問題