问一个正则表达式的意思

feng3982315 2009-08-19 11:36:47
sub convert_LATITUDE
{
my $lat = $_[0] || 0;
if( $lat =~ /(\d+)-(\d+)-(\d+\.?\d*)\-?(N|S)/ || 0 )
{
$lat = ($1 + $2/60 + $3/3600);
if( $4 =~ /S/ ) {
$lat *= -1;
}
return $lat;
}
elsif( $lat =~ /^-?\d+\.?\d*$/ || 0 ) { return $lat }
return 0;

小弟没学过正则表达式,实在看不透彻,请乡亲们给看看其中的两个正咋表达式是什么意思,谢谢了
...全文
100 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
rainsome 2009-08-19
  • 打赏
  • 举报
回复
正则如lovvver所作的解释。
rainsome 2009-08-19
  • 打赏
  • 举报
回复
看样子是 perl的代码。转换时间。结果是小时数。
lovvver 2009-08-19
  • 打赏
  • 举报
回复
第二个正则表达式:
~ /^-?\d+\.?\d*$/
[有可能有-][至少有一个数字][可能有一个.][可能有数字串]
并且该正则是对整行进行匹配
cgisir 2009-08-19
  • 打赏
  • 举报
回复
/(\d+)-(\d+)-(\d+\.?\d*)\-?(N|S)/
应该匹配这样的格式吧
123-123-123.12N
123-123-123.12S
123-221-12344.N
123-221-12344.S
123-221-12344N
123-221-12344S
但前两个-没有转义不知道怎么回事


/^-?\d+\.?\d*$/
匹配
开头可以有一个或0个短-线,后面跟0-9数字0个或多个,后面可以有0或一个.再往后可以跟0或多个0-9数字
就是
-1212
1212
-1212.
-1212.131
12121.
121212.232
第一个短线也没有转义,可能C#不用?

lovvver 2009-08-19
  • 打赏
  • 举报
回复
第一个正则表达式:
~ /(\d+)-(\d+)-(\d+\.?\d*)\-?(N|S)/
[至少一个数字]-[至少一个数字]-[至少一个数字][可能有个.][可能有数字串][可能有-][以N或S结尾]
wiki14 2009-08-19
  • 打赏
  • 举报
回复
帮你顶一下~mark!~

110,502

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧