获取模式的最后一个实例

时间:2014-10-16 14:41:07

标签: regex powershell

我需要一个正则表达式的帮助,它会在一行中获得模式的最后一个实例

有问题的行用以下模式编写(用斜杠分隔):

/this/is/how/it/looks/

在上面的例子中,我希望得到looks作为输出。

请注意,这些行不均匀,并且可以包含比示例更少或更多的字符串。

/it/can/be/shorter/
/it/can/also/be/longer/than/most/lines/

对于上述内容,我希望分别获得shorterlines

4 个答案:

答案 0 :(得分:5)

/([^/]*)/$

是你需要的正则表达式。

<强>解释

/      # Match a slash
(      # Start capturing group number 1
 [^/]* # Match any number of characters except slashes
)      # End capturing group number 1
/      # Match a slash
$      # Match the position at the end of the string

测试live on regex101.com

答案 1 :(得分:3)

如果你使用Powershell,你可以这样写:

$line.TrimEnd("/").Split("/")[-1]

如果您确定始终存在尾部斜杠,则可以跳过修剪步骤:

$line.Split("/")[-2]

答案 2 :(得分:2)

您可以使用\w+(?=/$),这将匹配每行中的姓氏

解释

\w+任意一组字符a-z,A-Z,0-9和_。

对于&#39; /&#39;

(?=/$)正向前瞻然后是字符串的结尾。

答案 3 :(得分:0)

抽象模式:(这适用于空格,你可以用你想要的任何东西替换第一个'文字字符')

---- / ----

(\ .[^\ ]+)(?=$)

干杯