正则表达式从后向后进行从右到左的事件

问题描述

| 我正在提取以Windows logonID结尾的事件...这意味着:   
Special Privileges assigned to a new logon: logon Id: 0x007d
我认为这是最好的方法
^(?<event>.+)(?<=ID:\\s\\d+x[A-F\\d]+)$
使用RegexOptions.RightToLeft从字符串的结尾开始搜索。 因此,使用lookbehind如果{ID:logonId}不存在,它将尽快失败。 由于找不到合适的“从右到左”测试仪,因此我在这里,寻求您的帮助。     

解决方法

你能找到比赛的位置吗?在Perl中,可以做到:
if ($str =~ /ID:\\s\\d+x[A-F\\d]+$/i)
   say substr($str,$-[0]);  # $-[0] is the starting pos of the match.
}
要么
if ($str =~ /ID:\\s\\d+x[A-F\\d]+$/ip)
   say ${^PREMATCH};
}
    ,我不明白为什么您需要RightToLeft选项或一个后备选项。您是否使用过这样的正则表达式进行了测试:
(?i)^(?<event>.+)ID:\\s\\d+x[A-F\\d]+$
...发现它太慢了?