我正在尝试制作一个正则表达式,它将匹配字符串中第一个空格后的所有字符。但
输入文字:
foo bar bacon
期望的比赛:
bar bacon
到目前为止,我发现的最接近的是:
\s(.*)
然而,这与“bar bacon”之外的第一个空间相匹配,这是不合需要的。任何帮助表示赞赏。
答案 0 :(得分:5)
答案 1 :(得分:1)
你也可以尝试这个
(?s)(?<=\S*\s+).*
或
(?s)\S*\s+(.*)//group 1 has your match
(?s)
.
也会匹配换行符
答案 2 :(得分:1)
我更喜欢使用[[:blank:]]
,因为它与新行不匹配,以防万一我们的目标是mutli。它也与那些不支持\s
的人兼容。
(?<=[[:blank:]]).*
答案 3 :(得分:1)
你不需要看后面。
my $str = 'now is the time';
# Non-greedily match up to the first space, and then get everything after in a group.
$str =~ /^.*? +(.+)/;
my $right_of_space = $1; # Keep what is in the group in parens
print "[$right_of_space]\n";