$line = " TEST: asdas :asd asdasad s";
if ($line =~ /(.*):(.*)/
{
print "$1 = $2 "
}
Run Code Online (Sandbox Code Playgroud)
我在期待 TEST =asdas :asd asdasad s
但它不起作用?什么是问题
And*_*ter 12
正确的方法是:
/([^:]+):(.*)/
Run Code Online (Sandbox Code Playgroud)
要么
/(.+?):(.*)/
Run Code Online (Sandbox Code Playgroud)
这样,你不匹配左边的"任何东西",你在第一个例子中匹配"一个或多个非冒号字符",或者"匹配任何字符后跟冒号的最短字符串"第二.
更好的方法是不使用正则表达式.使用split.
my ($left, $right) = split(/:/, $line, 2);
Run Code Online (Sandbox Code Playgroud)
的,2说:"我想最多两个领域".
| 归档时间: |
|
| 查看次数: |
7057 次 |
| 最近记录: |