正则表达式的怪异

时间:2011-11-17 04:03:16

标签: regex

我有这个正则表达式

"(?<=L).+?(?=;)"

应该匹配L和之间的任何内容;

我在这篇文章中使用它

"(Ljava/net/URL;)Ljava/lang/String;"

我将比赛视为

"java/net/URL"
";)Ljava/lang/String"

1 个答案:

答案 0 :(得分:2)

结果是预期的。第二场比赛从“URL”中的“L”开始。由于您使用的是lookarounds,因此匹配不会“消耗”L;。你可能想做这样的事情:

"L(.+?);"

所以您想要的匹配位于第一个子模式中,L;将无法用于以后的匹配。