1

我正在尝试创建一个正则表达式来检查 6-12 个字符,一个是数字,其余的是任何字符,没有空格。正则表达式可以做到这一点吗?我正在尝试在objective-c中执行此操作,但我根本不熟悉Regex。我一直在阅读一些教程,但大多数都是为了匹配一个数字或一组数字的简单案例,但并不完全是我想要的。我可以用方法做到这一点,但我想知道这是否会太慢,我想我可以尝试学习一些新东西。

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

4 回答 4

1

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

于 2012-09-14T17:42:21.447 回答
0

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

于 2012-09-14T19:10:52.477 回答
0

我没有尝试,但我认为这是答案

(^[^\d\x20]*\d[^\d\x20]*$){6,12}
于 2012-09-14T17:50:18.273 回答
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,但是通过添加_到这个字符类,我们可以从允许的字符列表中删除下划线。

于 2012-09-14T18:00:30.607 回答