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

| 我正在提取以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]);  # $-[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]+$
...发现它太慢了?     

要回复问题请先登录注册