建立正则表达式以获得最后一节

时间:2013-07-05 02:31:13

标签: regex

我有以下文字:

service instance 2930 ethernet
description this is all character billing code not include tunnel id
encapsulation dot1q 2930
xconnect 1.1.1.2 333 encapsulation mpls
service instance 2931 ethernet 2931colin
description this is 2931 Billing Code for Colin
encapsulation dot1q 2931
xconnect 1.1.1.2 2931 encapsulation mpls

并且只想获得“服务实例”启动的最后一节... e.g:

service instance 2931 ethernet 2931colin
description this is 2931 Billing Code for Colin
encapsulation dot1q 2931
xconnect 1.1.1.2 2931 encapsulation mpls

你能帮我建一下这个正则表达式吗?在发布之前我花了3个小时找到答案:(

谢谢

1 个答案:

答案 0 :(得分:2)

使用贪婪量词

(?s)service instance(?!.*service instance).*$

(?s)切换单行模式,允许.匹配换行符

(?!.*service instance)是一个zero width lookahead会检查service instance,如果它发生,它将无法匹配进一步

$标记字符串

的结尾

因此,只有当字符串中没有前面的服务实例允许我们匹配所需的字符串时,此正则表达式才会匹配服务实例