正则表达式NAND运算符

时间:2015-04-20 18:31:20

标签: regex

我无法从日志中提取信息,(见下文)

Account Name: - Account Domain: - Logon ID: 0x0 Account Name: 
usefulinfo Account Domain: whatever
我尝试使用

(?=Account Name\: )(.*?)(?=Account Domain)

但是这会得到两个匹配组,包括第一个匹配组“ - ”

我需要的是从第二个匹配组中提取'usefulinfo'。不知道如何实现这一目标。是否有NAND运算符或更好的正则表达式?

谢谢大家

2 个答案:

答案 0 :(得分:1)

您可以使用:

(?=Account Name\: )([^-]*?)(?=Account Domain)

Demo and explanation

答案 1 :(得分:0)

我建议使用

(?<=Account Name: )([^-]|.{2,})(?=Account Domain)

这将匹配任何不是-的单个字符,或者除了换行符之外的任何包含2个或更多字符的字符。

此外,第一个前瞻应该更改为lookbehind,否则正则表达式引擎将在匹配中包含该内容,因为它也匹配([^-]|.{2,})。 据我所知,你不需要逃避: