我有一条路径,我需要提取3个字符的最后一个
aa-aaa/123/aaaa -> 123
aaa/123/abc -> abc
aaa/1234/abcd -> aaa
aaa -> aaa
这是我的 try
但是,如果有人有一个很好的正则表达式,那么我远非一个有趣的结果?
答案 0 :(得分:4)
这一个完成了工作,你得到了第1组中的目录名称:
^(?:.+\/)*([^\/]{3})(?=\/|$)
<强>解释强>
^
(?: : non capture group
.+ : 1 or more any character
\/ : slash
)* : repeated 0 or more times
( : group 1
[^\/]{3}: 3 non slash
) : end group 1
(?= : look ahead
\/|$ : slash or end of line
) : end look ahead
答案 1 :(得分:2)
如果您可以使用捕获组,则应该为您执行此操作:
.*(\b\w{3}\b)
它将所有内容(.*
)跳到最后三个字符序列(\b\w{3}\b
),并将其捕获到组1中。
\b
确保字边界,\w{3}
为三个字字(即a-z
,A-Z
加0-9
)(它匹配路径中允许的大多数字符。如果您需要它匹配所有,则必须更具体地了解执行环境。