有没有办法从右到左匹配正则表达式?我正在寻找的是一个正则表达式
MODULE WAS INSERTED EVENT
LOST SIGNAL ON E1/T1 LINK OFF
CRC ERROR EVENT
CLK IS DIFF FROM MASTER CLK SRC OF
从这个输入
CLI MUX trap received: (022) CL-B MCL-2ETH MODULE WAS INSERTED EVENT 07-05-2010 12:08:40
CLI MUX trap received: (090) IO-2 ML-1E1 EX1 LOST SIGNAL ON E1/T1 LINK OFF 04-06-2010 09:58:58
CLI MUX trap received: (094) IO-2 ML-1E1 EX1 CRC ERROR EVENT 04-06-2010 09:58:59
CLI MUX trap received: (009) CLK IS DIFF FROM MASTER CLK SRC OFF 07-05-2010 12:07:32
如果我可以从右到左进行匹配,我可以在 (EVENT|OFF) 的右侧写一些类似的东西,直到第二次出现多个空格 []+
我今天管理的最好的方法是使用正则表达式获取从 (022) 到 EVENT 的所有内容
CLI MUX trap received: \([0-9]+\)[ ]+(.*[ ]+(EVENT|OFF))
但这并不是我真正想要的:)
编辑:它的语言是什么?它实际上是我们拥有的过滤器的配置字符串,但我猜它使用的是标准的 GNU C Regex 库。
编辑 2:我喜欢关于按长度切割的答案,但 Amarghosh 可能更符合我的要求。真的不知道为什么我没有想过像这样缩短长度:
^.{56}(.{39}).*$
super 感谢您的快速回答...
最佳答案
在 .NET 中,您可以使用 RightToLeft
option :
Regex RE = new Regex(Pattern, RegexOptions.RightToLeft);
Match theMatch = RE.Match(Source);
关于regex - 从右到左匹配正则表达式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2989606/