regex - 如何删除单词开头的空格?
问题描述
通过查看与先前关于“如何将首字母大写”的问题相关的常见问题解答,我发现了很多我想尝试的问题的有趣解决方案,但在到达那里之前我有一个更紧迫的问题需要处理.
我的问题是我不能从每行名称的开头去除空格。名称包括名字和姓氏。姓氏是大写的。我尝试使用由 Brian D Foy 编辑的常见问题解答中的解决方案,但无论我尝试什么,我都会得到Use of uninitialised value $_ in substitution (s///) at ...
我的代码是这样的:
open DATA, “<“, “name.txt”;
my @file = <DATA>;
for each my $name (@file) {
chomp $name;
my @arr;
# find ‘Mr.’ and ‘Ms.’, then ignore them
@arr = split(/M.\.\s/g, $name);
# remove leading white space from first names
@arr = s/^\s+//g;
print @arr,”\n”;
}
这是练习的一部分。我的解决方案与作者自己的解决方案几乎没有相似之处。在这里,我实际上应该将每个名字的第一个字母大写。我无法通过当前问题来完成练习。尽管代码作为既定目标的解决方案相当长,但在尝试找到实现相同结果的更简洁的方法之前,我想利用学习辅助中描述的方法。现在,我将非常感谢清楚为什么我会收到错误消息以及为什么我不能删除空格。谢谢你。
解决方案
您可以从拆分正则表达式中的名称中删除空格。
所以你的代码将变成:
open DATA, "<", "name.txt";
my @file = <DATA>;
foreach my $name (@file) {
chomp $name;
# find ‘Mr.’ and ‘Ms.’, then ignore them
my @arr = split(/M.\.\s+/g, $name);
print @arr,"\n";
}
推荐阅读
- r - 是否有将/转换 excel 文件导出为文本文件的 R 函数?
- python - 如何修复“csv_reader 中的行”不起作用?
- python - 更新子弹类。为什么子弹向上时 y 坐标值会减小?
- reactjs - 将 axios (JSON) 响应存储在数组中
- scala - 如何从端点中获取所有查询参数?
- ruby-on-rails - Heroku 部署无法加载自定义 .bundle 文件
- react-native - 使用 React-Hooks 从手机存储中挂钩图像
- python - 在熊猫中按索引从列中的单元格值中删除一些字符?
- json - 如何在不使用波浪号的情况下仅获取 JSON 密钥?
- r - 如何预测R中的下一个事件日期