我在一个以两位数开头的unix路径中有文件名...如何在没有扩展名的情况下提取名称
/this/is/my/path/to/the/file/01filename.ext
应为filename
我目前有[^/]+(?=\.ext$)
所以我得01filename
,但如何摆脱前两位?
答案 0 :(得分:0)
您可以在已有的前面添加一个后视,寻找两位数字:
(?<=\d\d)[^/]+(?=.ext$)
仅当您有两位数字时才有效!不幸的是,在大多数正则表达式引擎中,不可能在外观中使用*
或+
等量词。
(?<=\d\d)
- 在比赛前检查两位数字[^/]+
- 匹配1个或多个字符,/
(?=.ext$)
- 检查匹配后的.ext
答案 1 :(得分:0)
试试这个:
/\d\d(.*?).\w{3}$
说明:
/\d\d
:斜线后跟两位数
(.*?)
:捕获
.\w{3}
:一个点后跟三个字母
$
:字符串结尾
它适用于Expresso
答案 2 :(得分:0)
更一般的正则表达式:
(?:^|\/)[\d]+([^.]+)\.[\w.]+$
说明:
(?: group, but do not capture:
^ the beginning of the string
| OR
\/ '/'
) end of grouping
[\d]+ any character of: digits (0-9) (1 or more
times (matching the most amount possible))
( group and capture to \1:
[^.]+ any character except: '.' (1 or more
times (matching the most amount
possible))
) end of \1
\. '.'
[\w\.]+ any character of: word characters (a-z, A-
Z, 0-9, _), '.' (1 or more times
(matching the most amount possible))
$ before an optional \n, and the end of the
string
答案 3 :(得分:0)
考虑以下Regex ......
(?<=\d{2})[^/]+(?=.ext$)
祝你好运!