我正在尝试创建两个正则表达式来为字符串中的某些值添加引号.基本上字符串将是这样的:
999 date Doe, John E. London 123456789
Run Code Online (Sandbox Code Playgroud)
我想要包围名称,以便如果此文件导出到csv,它将不会分开.这就是我到目前为止所拥有的
$line =~ s/([^\s{2,}]*,[^\s{2,}]*)/"$1"/g;
Run Code Online (Sandbox Code Playgroud)
我认为它应该找到任何逗号及其附近的任何内容,直到它找到两个或更多空格但它不起作用.谢谢您的帮助.
您要求除 2个或更多空格外的任何内容.
我同意这unpack是更自然的方式.但是这split是一种以图案形状使用千篇一律的方法.任何不在该模式中的东西都是返回字段.所以这:
@fields = split /\h{2,}/, $line;
$line = join(" " x 2 => map { "($_)" } @fields);
Run Code Online (Sandbox Code Playgroud)
可能就够了.