gpt4 book ai didi

regex - Perl 正则表达式问题

转载 作者:行者123 更新时间:2023-12-02 05:24:09 26 4
gpt4 key购买 nike

作为一名刚接触 Perl 的 PHP 程序员,通过“Programming Perl”工作,我遇到了以下正则表达式:

/^(.*?): (.*)$/;

此正则表达式旨在解析电子邮件 header 并将其插入到哈希中。电子邮件 header 包含在单独的 .txt 文件中,格式如下:

From: person@site.com
To: email@site.com
Date: Mon, 1st Jan 2000 09:00:00 -1000
Subject: Subject here

我用来处理这个正则表达式示例的完整代码如下:

use warnings;
use strict;

my %fields = ();

open(FILE, 'header.txt') or die('Could not open.');

while(<FILE>)
{
/^(.*?): (.*)$/;
$fields{$1} = $2;
}

foreach(%fields)
{
print;
print "\n";
}

现在,进入我的问题。我不确定为什么第一个子模式被修改为使用最小量词。这也许是一个小问题,但我不明白为什么要这么做。

感谢您的任何回复。

最佳答案

否则,如果值包含 :<space>,则存在无法正确匹配的风险.

想象一下:

Subject: Urgent: Need a regex

没有最小匹配$1会得到 Subject: Urgent , 和 $2将是 Need a regex .

关于regex - Perl 正则表达式问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6062606/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com