我很难弄清楚如何创建一个RegEx,该RegEx检查在模式之后的行的任何时刻是否没有出现字符。
我有以下日志:
3/9/18, 17:47 - Person 1: Hello guys!
3/10/18, 22:59 - Person 2 joined the group.
3/10/18, 09:35 - Person 2: Sup!
What's cracking?
3/10/18, 09:36 - Person 1: Not much...
我一次要读一行,所以我需要丢弃具有以下模式的行:date, hour - warning.
,就像上面示例中的第二行一样,因为它们是系统的行,而不是对话。
到目前为止,我所要做的就是这个RegEx:
\d*\/\d*\/\d*, \d*:\d* - (?!\:)
但是否定的行首(?!\:)
仅检查-
之后的字符,而不检查字符串的其余部分。如何强制此RegEx检查其余字符串中是否没有:
?
这里是demo。
答案 0 :(得分:2)
您可以使用{0}匹配0次以上的negated character class [^
,而不是换行符或:
,然后在否定前瞻中匹配:
请注意匹配\d+
以匹配1个以上的数字,而不匹配//, : -
\d+/\d+\/\d+, \d+:\d+ - (?![^\r\n:]*:)
关于最后一部分:
(?!
负向超前
[^\r\n:]*
匹配除换行符或冒号以外的任何字符,其匹配次数为0+
:
匹配冒号)
提前关闭答案 1 :(得分:2)