删除某个字符后的字符

时间:2016-07-08 14:05:06

标签: perl split

如何在某个字符后删除字符串中的字符(例如:" ")?

我有下一个字符串 12345.678 。我希望删除"之后的所有字符。"并获得 12345 。 "。"之后的字符数。是可变的。

谢谢。

6 个答案:

答案 0 :(得分:1)

试试这个:

 /\b([^\.]*)\.([0-9a-z]*)\b/$1/;

答案 1 :(得分:1)

请参阅perldoc -f索引:

$x = "12345.678";

$y = substr($x, 0, index($x, '.'));

答案 2 :(得分:1)

使用regexps的一个解决方案(请研究该文档,以便您可以自己学习...):

my $num = "12345.678";
$num =~ /(.*)\.+/;
print $1;

答案 3 :(得分:1)

$string = '12345.678';

# remove everything from . on
$string =~ s/\..*//s;

\.与文字.匹配; .*匹配字符串中剩余的任何内容(使用/ s标志使其包含换行符,默认情况下不包括换行符)。

您也可以寻找:

$number = 12345.678;
$number = int $number;

如果你想获得.之后的内容,请执行:

my ($before, $after) = split /\./, $string, 2;

答案 4 :(得分:0)

取决于您使用的环境和可用的工具,但是这样的东西可以在bash中使用

sed -e "s/\..*$//"

会奏效。 。逃脱“。”第二。匹配任何内容和*匹配0次或更多次,$匹配行尾

答案 5 :(得分:0)

使用split

my ($num) = split(/\./, "12345.678");