我有一个变量如何使用 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 教程。根据您的问题调整他们的第一个“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