如何编写一个正则表达式,以匹配除一个之外的所有大小写字母组合中的特定字符串?
例如,以字符串“ SuperMario ”为例。什么正则表达式在所有其他大小写字母组合中匹配该字符串?
正则表达式应该匹配:
- 超级玛丽
- 超级玛丽
正则表达式不应匹配:
- 超级马里奥
- 超级玛丽
首选 Perl 兼容的正则表达式。
如何编写一个正则表达式,以匹配除一个之外的所有大小写字母组合中的特定字符串?
例如,以字符串“ SuperMario ”为例。什么正则表达式在所有其他大小写字母组合中匹配该字符串?
正则表达式应该匹配:
正则表达式不应匹配:
首选 Perl 兼容的正则表达式。
你可以使用这个:
/(?!SuperMario)(?i)supermario/
编辑:
请注意,如果您的字符串包含其他内容,您将获得更好的性能:
/(?i)supermario(?<!(?-i)SuperMario)/
my $s = "Supermario";
if ($s =~ /supermario/i and $s !~ /SuperMario/) {
print "wrong\n";
}
另一种方法:
/(?:[S](?!uperMario)|s)[Uu][Pp][eE][rR][mM][aA][Rr][iI][oO]/
我的 Perl 生锈了,这不是使用正则表达式,但是如何:
my $term = "SuperMario";
my $input = "SuperMario";
if ( $input ne $term && uc($input) eq uc($term) ){
print "match";
}