perforce depot路径具有以下格式:
//仓库/溶液/项目/ file.cs#232
如何只提取“file.cs”。我尝试了以下内容。
[^//]*$
不确定如何消除“#1”部分。有人可以帮忙吗?
答案 0 :(得分:6)
即使文件名后面没有#,也会找到文件名。
(\w+\.\w+)[^/]*$
说明:
(\w+\.\w+)
这与文件名本身匹配,\w
是一个单词字符(与[a-zA-Z0-9_]
相同)。所以它的1+单词字符,一个句号(.
自己匹配任何字符,你需要\.
来匹配实际的.
),然后再多1个单词字符。
[^/]*
匹配不是/
的0+个字符。但是所有单词字符都会被放入\w+
匹配之前(因为它首先被评估,而+
会尝试尽可能多地匹配)所以在你的例子中它匹配{{1} }
#200
匹配该行的结尾。这是必需的,因此$
无法匹配a.directory
答案 1 :(得分:2)
您可以使用此正则表达式:
/\/([^\/#]*)#/
并使用匹配的组#1作为您的值file.cs
答案 2 :(得分:1)
假设您正在使用PCRE,则可以使用以下模式:
'[^/]*(?=#)'