Может ли любое тело сказать мне регулярное выражение в Perl для получения самой первой буквы слова, идущего после точки, вопроса или восклицательного знака ...
Моя программа читает строку символ за символом.
Требование:
input string : "abcd[.?!]\s*abcd"
output: "Abcd[.?!]\s*Abcd"
Моя программа выглядит следующим образом:
#!/usr/bin/perl
use strict;
my $str = <STDIN>;
my $len=length($str);
my $ch;
my $i;
for($i=0;$i<=length($str);$i++)
{
$ch = substr($str,$i,1);
print "$ch";
if($ch =~ 's/([.?!]\s*[a-z])/uc($1)/ge')
{
$i=$i+1;
$ch = substr($str, $i,1);
my $ch = uc($ch);
print "$ch";
}
#elsif($ch eq "?")
#{
# $i=$i+1;
# $ch = substr($str, $i,1);
# my $ch = uc($ch);
# print "$ch";
#}
#elsif($ch eq "!")
#{
# $i=$i+1;
# $ch = substr($str, $i,1);
# my $ch = uc($ch);
# print"$ch";
#}
#elsif($ch eq " ")
#{
# $i=$i+1;
# $ch = substr($str, $i,1);
# my $ch = uc($ch);
# print"$ch";
#}
#else
#{
#print "";
#}
}
print "\n";