我是Perl和reg-ex的新手,我正在尝试删除字符串中的前两个单词
请问如何使用正则表达式删除字符串中的前2个单词。
例如
输入字符串为One two three four
输出应为three four
我尝试^(?:\w+\s+){2}([^\n\r]+)$
并且它在regex在线测试工具上工作正常但是当我在我的应用程序中运行它时输出与输入字符串相同
PLS。建议
答案 0 :(得分:2)
您想使用替换运算符(s///
)
my $str = "One two three four";
$str =~ s/^(?:\w+\s+){2}//;
答案 1 :(得分:2)
像
这样的东西$str=~s/^\S+\s+\S+\s+//;
将用空字符串替换前两个单词,从而有效地删除它。
答案 2 :(得分:0)
这是你正在寻找的东西:
use strict;
use warnings;
my $str = "One two three four";
my ($match) = $str =~ /^(?:\w+\s+){2}([^\n\r]+)$/;
print "$match\n";
三四