正则表达式的新手,我有一个包含这个
的数据的文件[Monkey]
KeyValue=B233
[Monkey]
KeyValue=A421
[Monkey]
KeyValue=Z123
[Monkey]
KeyValue=C84
最初我在使用
KeyValue=(.*)
在等号后捕捉一切。但现在我需要在KeyValue=
如何做到这一点?
答案 0 :(得分:1)
答案 1 :(得分:0)
使用否定先行断言:
KeyValue=(\w+)(?![\s\S]*KeyValue)
如果您使用[\s\S]
标记,则可以将.
替换为DOTALL
。
my $text = <<EOS;
[Monkey]
KeyValue=B233
[Monkey]
KeyValue=A421
[Monkey]
KeyValue=Z123
[Monkey]
KeyValue=C84
OtherValue=XYZ
EOS
$text =~ /KeyValue=(\w+)(?!.*KeyValue)/s;
print $1;