正则表达式不是字符

时间:2013-01-14 15:36:07

标签: php regex

我需要一个不允许使用字符的正则表达式。

^[A-Z0-9 _]*[A-Z0-9][A-Z0-9 _]*$

这些似乎不起作用,因为我需要逃避任何类型的角色(英语,中文,希腊语等)

3 个答案:

答案 0 :(得分:1)

如果你只想接受数字和。使用POSIX(PHP)的字符:

^[.1-9]*$

如果要明确排除单词字符

^[^\w]*$

这将匹配除word个字符以外的任何内容。

注意(正如评论中所回答的那样):

  • 这适用于JGsoft,.NET,Perl,Python。
  • 如果使用Java,JavaScript,PCRE,Ruby,POSIX,它将

您编辑了帖子并声明您使用的是PHP。据我所知,它使用POSIX ERE。在这种情况下,此解决方案将工作。但是,如果其他用户(确实使用支持的引擎)找到了这个答案,我会保留搜索功能的答案。

答案 1 :(得分:1)

使用\p{L}\p{Letter}匹配任何语言的任何(Unicode)字母。要匹配任何非字母,您应该使用以下任一项来否定:\p{^L}\P{L}(取决于您使用的正则表达式引擎)。

答案 2 :(得分:0)

任何角色\与
不是字符\ WITH