在perl中匹配部分单词的正确方法是什么?例如,我要匹配“ CentOS”,以便匹配CentOS 6,CentOS 7和CentOS 8之类的结果。
我知道如何在bash中执行此操作,如下所示:
if [[ "$os" == *"CentOS"* ]]; then
echo $centosversion
else
echo $differentos
fi
Run Code Online (Sandbox Code Playgroud)
在上面的bash示例中,它将找到带有“ CentOS”的任何结果。
如何使用下面的perl代码实现此目标?
if ($os eq "CentOS") {
print "$centosversion";
} else {
print "$differentos";
}
Run Code Online (Sandbox Code Playgroud)
我尝试使用:
($os eq *"CentOS"*)
Run Code Online (Sandbox Code Playgroud)
和
(($os eq *"CentOS"*))
Run Code Online (Sandbox Code Playgroud)
但这似乎是不正确的?
也许我完全错了,但是我对perl不太了解。我希望有人可以指出正确的方向。
您可以使用index()函数-在其他字符串中查找字符串。
if (index($os, 'CentOS') != -1) {
print "$centosversion";
} else {
print "$differentos";
}
Run Code Online (Sandbox Code Playgroud)
另一个选择是正则表达式匹配。但是,对于固定的字符串,这可能会过大。
if ($os =~ /CentOS/) {
print "$centosversion";
} else {
print "$differentos";
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
58 次 |
| 最近记录: |