2013-11-14 84 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

相关问题