正则表达式(正则表达式)匹配最后的出现

时间:2017-12-01 20:24:20

标签: regex

常规traceroute:

6  ebt-b1612-tcore01.bhe.embratel.net.br (200.230.251.166)  36.006 ms  37.039 ms
   ebt-b1611-tcore01.cas.embratel.net.br (200.244.212.133)  33.340 ms
7  ebt-b10831-tcore01.spoph.embratel.net.br (200.244.212.126)  40.085 ms
   ebt-b1191-tcore01.spoph.embratel.net.br (200.230.252.14)  31.773 ms  33.899 ms
8  ebt-h0-5-0-1-puacc03.spo.embratel.net.br (200.244.214.116)  41.644 ms  33.099 ms  60.950 ms

我需要的是获得最后一个.XXX。在“embratel.net.br”之前。 (在这种情况下“spo”) 我已经尝试了很多..我已经阅读了很多堆栈问题和答案..但没有一个是有帮助的。

1 个答案:

答案 0 :(得分:1)

代码

See regex in use here

\.[^.]*\.(?=embratel\.net\.br.*\Z)

说明

  • \.字面匹配点字符.
  • [^.]*匹配除点字符.以外的任何字符
  • \.字面匹配点字符.
  • (?=embratel\.net\.br.*\Z)确定后续匹配的正向前瞻
    • embratel\.net\.br按字面意思匹配(\.匹配文字点字符.
    • .*任意次匹配任何字符(这与换行符不匹配)
    • \Z断言字符串末尾的位置,或者在字符串末尾的行终止符之前。或者,您可以在未启用多行$修改器的情况下使用m