1

変数があります。perl で正規表現を使用して、文字列にスペースが含まれているかどうかを確認するにはどうすればよいですか? 例:

$test = "abc small ThisIsAVeryLongUnbreakableStringWhichIsBiggerThan20Characters";

したがって、この文字列では、文字列内の単語が x 文字より大きくないかどうかを確認する必要があります。

4

4 に答える 4

6
#!/usr/bin/env perl

use strict;
use warnings;

my $test = "ThisIsAVeryLongUnbreakableStringWhichIsBiggerThan20Characters";
if ( $test !~ /\s/ ) {
    print "No spaces found\n";
}

Perl の正規表現については、必ずお読みください。

Perl 正規表現チュートリアル -perldoc perlretut

于 2012-07-31T01:09:31.880 に答える
3

perl regex tutorialをご覧ください。最初の「Hello World」の例をあなたの質問に適応させると、次のようになります。

if ("ThisIsAVeryLongUnbreakableStringWhichIsBiggerThan20Characters" =~ / /) {
    print "It matches\n";
}
else {
    print "It doesn't match\n";
}
于 2012-07-31T01:07:10.723 に答える
2
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
于 2012-07-31T01:25:32.543 に答える
0

非スペース文字の最長連続シーケンスの長さを見つけるには、次のように記述します。

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
于 2012-07-31T12:00:04.917 に答える