我需要将数据库记录格式化为一个网络论坛可以正确显示的表格(使用bbcode)。有问题的论坛不尊重空格,无论我使用哪种格式标签,但确实有等宽字体,所以我需要用这样的下划线替换所有空格,以保持一致:
Field____Field____Field
Value____Value____Value
Value____Value____Value
Value____Value____Value
Value____Value____Value
我已经研究过Perl格式和printf,但我无法弄清楚如何使用这些方法将空格和制表符变为下划线。文本也有可变长度,所以我需要列也是可变的(不能硬编码固定值)。
任何帮助将不胜感激。谢谢!
答案 0 :(得分:2)
有点黑客但是我会使用sprintf但是我会用我在这些值中找不到的另一个字符替换我的值中的空格(比如〜)。这可以通过简单的正则表达式完成。 在sprintf之后,我会将带有下划线的空格和值中的特殊字符替换回空格。
答案 1 :(得分:1)
您不需要任何高级内容,只需要用下划线替换空格:
my $str = "Field Field Field";
$str =~ tr/ /_/;
print $str;
答案 2 :(得分:0)
如果字段中的值可能包含标签(或其他类似空格的字符),您可能需要执行以下操作:
my $str = "Field Field\tContinued Field";
$str =~ s/\s/_/g;
print $str;