変数があります。perl で正規表現を使用して、文字列にスペースが含まれているかどうかを確認するにはどうすればよいですか? 例:
$test = "abc small ThisIsAVeryLongUnbreakableStringWhichIsBiggerThan20Characters";
したがって、この文字列では、文字列内の単語が x 文字より大きくないかどうかを確認する必要があります。
変数があります。perl で正規表現を使用して、文字列にスペースが含まれているかどうかを確認するにはどうすればよいですか? 例:
$test = "abc small ThisIsAVeryLongUnbreakableStringWhichIsBiggerThan20Characters";
したがって、この文字列では、文字列内の単語が x 文字より大きくないかどうかを確認する必要があります。
#!/usr/bin/env perl
use strict;
use warnings;
my $test = "ThisIsAVeryLongUnbreakableStringWhichIsBiggerThan20Characters";
if ( $test !~ /\s/ ) {
print "No spaces found\n";
}
Perl の正規表現については、必ずお読みください。
perl regex tutorialをご覧ください。最初の「Hello World」の例をあなたの質問に適応させると、次のようになります。
if ("ThisIsAVeryLongUnbreakableStringWhichIsBiggerThan20Characters" =~ / /) {
print "It matches\n";
}
else {
print "It doesn't match\n";
}
die "No spaces" if $test !~ /[ ]/; # Match a space
die "No spaces" if $test =~ /^[^ ]*\z/; # Match non-spaces for entire string
die "No whitespace" if $test !~ /\s/; # Match a whitespace character
die "No whitespace" if $test =~ /^\S*\z/; # Match non-whitespace for entire string
非スペース文字の最長連続シーケンスの長さを見つけるには、次のように記述します。
use strict;
use warnings;
use List::Util 'max';
my $string = 'abc small ThisIsAVeryLongUnbreakableStringWhichIsBiggerThan20Characters';
my $max = max map length, $string =~ /\S+/g;
print "Maximum unbroken length is $max\n";
出力
Maximum unbroken length is 61