正则表达式的字母,数字,没有空格

时间:2012-09-14 17:40:13

标签: objective-c regex

我正在尝试创建一个Regex来检查6-12个字符,一个是数字,其余是任何字符,没有空格。 Regex可以这样做吗?我试图在objective-c中这样做,我根本不熟悉Regex。我一直在阅读一些教程,但大多数是为了匹配一个数字或一组数字的简单情况,但不完全是我正在寻找的。我可以用方法来做,但我想知道它是否会太慢而且我想我可以尝试学习新的东西。

asdfg1 == ok
asdfg 1 != ok
asdfgh != ok
123456 != ok
asdfasgdasgdasdfasdf != ok

4 个答案:

答案 0 :(得分:1)

使用此正则表达式^(?=.*\d)(?=.*[a-zA-Z])[^ ]{6,12}$

答案 1 :(得分:0)

我没试过,但我认为这是答案

(^[^\d\x20]*\d[^\d\x20]*$){6,12}

答案 2 :(得分:0)

当你说“性格”时,你的意思是“字母”,对吧?并且(感谢burning_LEGION指出这一点)可能只有一个数字?

在这种情况下,请使用

^(?=\D*\d\D*$)[^\W_]{6,12}$

<强>解释

^             # Start of string
(?=\D*\d\D*$) # Assert that there is exactly one digit in the string
[^\W_]        # Match a letter or digit (explanation below)
{6,12}        # 6-12 times
$             # End of string

[^\W_]看起来有点奇怪。它是如何工作的?好吧,\w匹配任何字母,数字或下划线。 \W匹配\w不匹配的任何内容。所以[^\W](意思是“匹配任何不是字母数字/下划线的字符”)与\w基本相同,但是通过向此字符类添加_,我们可以删除下划线从允许的字符列表中。

答案 3 :(得分:0)

这是一位数:^[^\d\x20]{0,11}\d{1}[^\d\x20]{0,11}$但我不能限制在6-12长度,你可以使用其他功能首先检查长度,如果从6到12检查这个正则表达式巫婆我写的