You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Perl脚本如何提取包含空格的id属性完整值

问题原因

原有代码使用空格作为分隔符切割整行文本,当id属性值包含空格时会被拆分为多个数组元素,仅取索引为2的元素只能获取空格前的内容,导致结果截断。

修正后代码
use strict;
use warnings;

my $input = "location/input.txt"; # Windows环境下如果用反斜杠作为路径分隔符需要转义,建议用正斜杠避免转义问题
open(my $FH, "<", $input) or die "无法打开输入文件: $!";
while(my $str = <$FH>)
{
   # 正则匹配直接捕获id双引号中的所有内容
   if ($str =~ /id="([^"]+)"/) {
       print "$1\n";
   }
}

close($FH);
实现说明
  • 正则/id="([^"]+)"/会匹配id="开头的内容,捕获组([^"]+)会匹配所有不为双引号的字符,直到遇到下一个双引号结束,不管id值中是否包含空格都可以完整提取
  • 改用三参数形式的open函数、词法文件句柄,写法更规范安全,die语句加错误提示便于排查问题
  • 修正了原路径中\i会被识别为转义字符的问题

运行后输出结果为:

small
sample test
big city

内容的提问来源于stack exchange,提问作者Noor

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.15 19:15:07