Perl - 不能删除字符串末尾的尾随字符

时间:2016-02-10 09:29:49

标签: perl

我在字符串peregrinevwap^_^_

的末尾有一些尾随字符
print "JH 4 - app: $application \n";

app: peregrinevwap^_^_

你知道他们为什么在那里以及如何删除它们。我尝试了chomp命令,但这没有用。

2 个答案:

答案 0 :(得分:2)

检查tr//cd运算符以清除不需要的字符。 它记录在" perldoc perlop"

$application =~ tr/a-zA-Z//cd;

将除去字符串中的字母和

之外的所有内容
$application =~ tr/^_//d;

将删除所有" ^"和" _"字符。

如果您只想删除字符串末尾的某些字符,请使用带有正则表达式的s // search / replace运算符和$锚点来匹配字符串的结尾。

以下是一个例子:

s/[\^_]*$//;

我们希望下划线不会出现在字符串的末尾,否则您无法自动将它们与这些不需要的字符分开。

答案 1 :(得分:0)

您确定这些字符实际上是^_个字符吗? ^_也可以表示Ctrl-Underscore,ASCII字符0x1F(单位分隔符)。 (不是我见过的角色,但你永远不知道。)

如果确实如此,您可以使用以下内容删除它们:

$application =~ s/\x1F//g;