我有一些类似于以下的字符串:
C:/DB/UCMerced_LandUse/UCMerced_LandUse/Unfoldered_Images/airplane00.tif
我只想保留'airplane'
。为此,我提出了以下正则表达式:
[^/]+$
-将选择'airplane00.tif'
^\D*
-删除最后一部分(即'C:/DB/UCMerced_LandUse/UCMerced_LandUse/Unfoldered_Images/airplane'
)
如何合并这两个以便仅获得'airplane'
?也许有更好的方法...
谢谢。
您可以使用此正则表达式并捕获捕获的组#1
([^/\d]+)[^/]*$
[[^/\d]+
匹配不是\d
和/
的任何字符中的1个或多个。
或者],您还可以将此正则表达式与lookbehind和lookahead断言一起使用:
(?<=/)[^/\d]+(?=[^/]*$)
使用([^\/]+)\.\D+$
并匹配第一个捕获组。
尝试
作为替代,您可以匹配直到最后出现/
,然后捕获组([^/\d]+)\d*
中除正斜杠或数字之外的任何字符,并匹配任何可能的后续数字。