我想要一个匹配行开头的正则表达式,然后匹配(并返回)所有其他单词.例如,给定这一行:
$line = "one two three etc";
Run Code Online (Sandbox Code Playgroud)
我想要这样的东西(这不起作用):
@matches= $line=~ /^one(?:\s+(\S+))$/;
Run Code Online (Sandbox Code Playgroud)
返回@matches,单词"two","three","etc".
我不想知道如何得到这些话.我想用正则表达式来做.看起来很简单,但我还没有找到解决方案.
为此,您需要使用\G与上一场比赛结束时的位置相匹配的锚点。当您使用此锚点构建模式时,您可以获得连续的结果:
@matches = $line =~ /(?:\G(?!\A)|^one) (\S+)/g;
Run Code Online (Sandbox Code Playgroud)