我怎样才能得到这个正则表达式的工作?
问题描述:
应该很容易,但这个正则表达式是不工作(的Perl):我怎样才能得到这个正则表达式的工作?
^(.*?)-(.*?)(-(.*)|$)
比赛
A - B - C(我想$ 1 =,$ 2 = B,$ 3 = C)
A - b(我想$ 1 = A,$ 2 = b)
比赛
ABC
任何想法表示欢迎!
你可以在这里尝试一下:
https://regex101.com/r/kP0fN9/2
答
如何:
use strict;
use warnings;
use Data::Dump qw(dump);
while(<DATA>) {
chomp;
my @res = $_ =~ /([^-]+)/g;
[email protected];
}
__DATA__
a - b - c
a - b
输出:
("a ", " b ", " c")
("a ", " b")
你能至少状态,你想要什么? – 2014-12-05 10:36:34
你试过了:'/^[^ - ] +( - [^ - ] +)* $ /' – anubhava 2014-12-05 14:30:00
是的。不工作。 – user77115 2014-12-05 15:30:11