我正在尝试制作一个正则表达式,它将匹配字符串中第一个空格之后(但不包括)的所有字符。
输入文本:
foo bar bacon
期望匹配:
bar bacon
到目前为止,我发现的最接近的是:
\s(.*)
但是,这与除“bar bacon”之外的第一个空格相匹配,这是不可取的。任何帮助表示赞赏。
我正在尝试制作一个正则表达式,它将匹配字符串中第一个空格之后(但不包括)的所有字符。
输入文本:
foo bar bacon
期望匹配:
bar bacon
到目前为止,我发现的最接近的是:
\s(.*)
但是,这与除“bar bacon”之外的第一个空格相匹配,这是不可取的。任何帮助表示赞赏。
我更喜欢使用[[:blank:]]
它,因为它与换行符不匹配,以防万一我们以 mutli 为目标。它也兼容那些不支持\s
.
(?<=[[:blank:]]).*
你不需要往后看。
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";
你也可以试试这个
(?s)(?<=\S*\s+).*
或者
(?s)\S*\s+(.*)//group 1 has your match
With(?s)
.
也会匹配换行符