加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

正则表达式 – 如何停止.在一个字符的第一个实例而不是在perl中

发布时间:2020-12-13 21:53:15 所属栏目:百科 来源:网络整理
导读:我想替换: '''font size="3"font color="blue" SUMMER/WINTER CONFIGURATION FILES/font/font''' 附: ='''font color="blue" SUMMER/WINTER CONFIGURATION FILES/font'''= 现在我的现有代码是: $html =~ s/n(.+)font size=".+?"(.+)/font(.+)n/n=$1
我想替换:
'''<font size="3"><font color="blue"> SUMMER/WINTER CONFIGURATION FILES</font></font>'''

附:

='''<font color="blue"> SUMMER/WINTER CONFIGURATION FILES</font>'''=

现在我的现有代码是:

$html =~ s/n(.+)<font size=".+?">(.+)</font>(.+)n/n=$1$2$3=n/gm

然而,最终结果如下:

=''' SUMMER/WINTER CONFIGURATION FILES</font>'''=

现在我可以看到发生了什么,它匹配< font size =“.....一直到< font color blue”>结尾这不是我想要的,我希望它停在第一个“不是最后一个实例,我认为那就是把那个标记放在那里,但是我已经尝试了……?.和.*?with每次都是相同的结果.

任何人都有任何想法我做错了什么?

正如马克所说,只需使用 CPAN即可.
#!/usr/bin/env perl

use strict; use warnings;
use HTML::TreeBuilder;

my $s = q{<font size="3"><font color="blue"> SUMMER/WINTER CONFIGURATION FILES</font></font>};

my $tree = HTML::TreeBuilder->new;
$tree->parse( $s ); 
print $tree->find_by_attribute( color => 'blue' )->as_HTML;

# => <font color="blue"> SUMMER/WINTER CONFIGURATION FILES</font>

这适用于您的具体情况,但是:

#!/usr/bin/env perl

use strict; use warnings;

my $s = q{<font size="3"><font color="blue"> SUMMER/WINTER CONFIGURATION FILES</font></font>};

print $s =~ m{
                 < .+? >
                 (.+)?
                 </.+? >                
             }mx;

# => <font color="blue"> SUMMER/WINTER CONFIGURATION FILES</font>

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读