【发布时间】:2015-03-11 19:39:12
【问题描述】:
我需要一些关于 perl 中字符串解析的帮助。 我有一个响应如下内容的 http 服务器:
<html>
<head><title></title></head><body>
T:17.10;H:32.10
</body></html>
我需要捕捉这两个数字(在示例 17.10 和 32.10 中)并将它们放入两个变量中,我将用于执行一些 if...then...else 循环。
我在字符串操作和正则表达式方面不是那么专家,目前我正在尝试这样做:
my $url = 'http://192.168.25.9';
my $content = get $url;
die "Couldn't get $url" unless defined $content;
my @lines = split /\n/, $content;
$content2 = $lines[2];
$content2 =~ tr/T://d;
$content2 =~ tr/H://d;
my @lines2 = split /;/, $content2;
$tem = $lines2[0];
$hum = $lines2[1];
$tem =~ m{(\d+\.\d+)};
$hum =~ m{(\d+\.\d+)};
但是当我打印出该行时,我看到了一些奇怪的东西:缺少字符、行中有空格等。 看来我有一些奇怪的隐形字符会造成混乱。
你能建议我一个更好的方法让两个数字变量中的两个数字吗?
谢谢 法比奥
【问题讨论】:
-
您正在打印哪些变量,您看到了什么?使用
Data::Dumper显示变量的内容。 -
你是如何获得 html 的?
get来自哪个模块。