Regex 获取模式的最后一个实例
我需要正则表达式中的帮助,该正则表达式将在一行中获取模式的最后一个实例 有问题的行以以下模式书写(用斜线分隔):Regex 获取模式的最后一个实例,regex,powershell,Regex,Powershell,我需要正则表达式中的帮助,该正则表达式将在一行中获取模式的最后一个实例 有问题的行以以下模式书写(用斜线分隔): /this/is/how/it/look/ 在上面的示例中,我希望得到looks作为输出 请注意,行不是统一的,可以包含比示例更少或更多的字符串 /it/can/be/shorter/ /it/can/ALOW/be/longer/THEN/most/lines/ 对于上面的行,我希望将分别缩短和行。您可以使用\w+(?=/$),这将匹配每行中的姓氏 解释 \w+任意一组“单词字
/this/is/how/it/look/
在上面的示例中,我希望得到looks
作为输出
请注意,行不是统一的,可以包含比示例更少或更多的字符串
/it/can/be/shorter/
/it/can/ALOW/be/longer/THEN/most/lines/
对于上面的行,我希望将分别缩短
和行
。您可以使用\w+(?=/$)
,这将匹配每行中的姓氏
解释
\w+
任意一组“单词字符a-z、a-z、0-9和389;”
(?=/$)
对“/”进行正向前瞻,后跟字符串结尾
/([^/]*)/$
是你需要的正则表达式
说明:
/#匹配斜杠
(#开始捕获组号1
[^/]*#匹配除斜杠以外的任意数量的字符
)#结束捕获组编号1
/#匹配斜杠
$#匹配字符串末尾的位置
测试它。如果您使用Powershell,您可以编写如下内容:
$line.TrimEnd("/").Split("/")[-1]
如果确定始终存在尾部斜杠,则可以使用以下选项跳过修剪步骤:
$line.Split("/")[-2]
抽象模式:(这适用于空格,您可以用任何您想要的内容替换第一个“文字字符”)
----/----
(\.[^\]+)(?=$)
干杯您可能不需要正则表达式,您使用的是什么语言?最后是否总是会有一个
/
呢?在String
类中是否有lastIndexOf()
和substring()
方法?您使用的是哪种语言?大家好-powershell。最后总会有一个“/”。啊,你每天都会学到新东西。谢谢,这个有用。我不知道[-1]的用法-我认为它是“最后一个实例”的简写形式?@Yad:是的,你可以用-2来表示上一个实例,等等。谢谢蒂姆。我不知道Casimir提出的拆分解决方案(加上我甚至没有指定使用powershell),这正是我问题的答案。