我正在编写一个perl脚本来处理文本文件.我需要从文本文件中删除项目符号并创建一个没有项目符号的新项目符号.当我查看文本文件的二进制版本时,项目符号存储为unicode项目符号(0xe280a2).如何从字符串中删除子弹.
我试过以下代码:
open($filehandle, '<:encoding(UTF-8)', $filename)
or die "Could not open file '$filename' $!";
while ($row = <$filehandle>)
{
@txt_str = split(/\•/, $row);
$row = join(" ",@txt_str);
}
Run Code Online (Sandbox Code Playgroud)
反斜杠在这里没有帮助,因为子弹不是正则表达式中的特殊字符.
如果指定输入为UTF-8,则应搜索UTF-8项目符号.要这样做,要么前置
use utf8;
Run Code Online (Sandbox Code Playgroud)
并将脚本保存为UTF-8; 或者,使用
\N{BULLET}
Run Code Online (Sandbox Code Playgroud)
在您的情况下,拆分和连接可以通过空间简单替换子弹来代替:
while (<$filehandle>) {
s/\N{BULLET}/ /g; # or s/•/ /g under utf8
print; # <-- this was missing in your code
}
Run Code Online (Sandbox Code Playgroud)