我有一个字符串'Basingstoke & Deane'
,我想检查'&'
符号并从该点剪切字符串(包括该字符串)。
所以我的输入是:'Basingstoke & Deane'
输出结果为:'Basingstoke '
我可以使用'&'
搜索$string =~ /&/
罚款,并可以使用s/&//
替换/删除它,但我有一个如何删除&
的精神障碍和之后的所有人物。留下的额外空间无关紧要。
这是众多字符串中的一种,因此通用解决方案最好。如果以前曾经问过这个问题,我已经看到很多关于使用substr
截断字符串的问题以及搜索特定字符串的问题,等等,但是我没有找到什么。任何帮助表示赞赏。
答案 0 :(得分:5)
$string =~ s/&.*//s;
将删除字符串的其余部分,包括换行符。
答案 1 :(得分:2)
您还可以找到&
的索引,并使用substr
函数获取字符串的一部分:
my $string = 'Basingstoke & Deane';
my $amp_index = index($string, '&');
print substr($string, 0, $amp_index);
# Basingstoke
由@TLP(substr as avalval)提供:
substr($string, index($string, '&')) = ""
答案 2 :(得分:2)
my ($prefix) = $string =~ /^([^&]*)/s;
my ($prefix) = split /&/, $string; # Slightly faster, IIRC
在就地:
$string =~ s/&.*//s;