编写正则表达式以拒绝包含句点的字符串

时间:2011-09-12 14:32:03

标签: regex

我想找一个不允许字符串包含“。”的正则表达式。字符。

例如,应接受this_is!a-cat,但应拒绝this.isacat

4 个答案:

答案 0 :(得分:14)

您可以使用此正则表达式:^[^\.]*$

  1. ^ - 字符串的开头
  2. [^\.]* - 除.以外的任何字符,任意数量的重复
  3. $ - 字符串结尾

答案 1 :(得分:1)

只需匹配字符,然后否定结果:

my $str = 'this.isacat';
my $has_no_comma = !($str =~ !m/\./);

(请注意,上面的内容是Perl,但概念应该适用于任何语言)

答案 2 :(得分:0)

^[^\.]*$

这定义了一个匹配除点之外的所有字符的字符类。它还指定从头到尾的完整字符串很多都包含此类中的字符。

答案 3 :(得分:-1)

/^(?!.*\.).+$/

应该做的伎俩。使用否定前瞻来取消具有句点的任何内容(请记住,需要将其转义为正则表达式中的.表示任何字符)。

或者,您可以创建一个匹配除句点之外的任何字符的类:

/^[^.]+$/

[^(字符)]表示“ NOT (字符)”。