Regex 正则表达式只允许字母数字

Regex 正则表达式只允许字母数字,regex,Regex,我正在尝试用正则表达式执行以下操作 只有A-Z和0-9 它本身没有一个字符 不能只是数字本身 只能是字母本身,但至少有2个字符 到目前为止我有这个 这似乎符合我的标准,但它并没有阻止我加入其他角色,如$!!等等 给出了一些正确的试验数据 579 International Road International Road 679 3 $£ A 一些不正确的数据是 579 International Road International Road 679 3 $£ A 我哪里出错了?*匹

我正在尝试用正则表达式执行以下操作

  • 只有A-Z和0-9
  • 它本身没有一个字符
  • 不能只是数字本身
  • 只能是字母本身,但至少有2个字符
到目前为止我有这个

这似乎符合我的标准,但它并没有阻止我加入其他角色,如$!!等等

给出了一些正确的试验数据

579 International Road
International Road
679
3
$£
A
一些不正确的数据是

579 International Road
International Road
679
3
$£
A
我哪里出错了?

*
匹配任何东西,但看起来这并不是你想要的。另外,您不需要
+
,因为
X{n,}
至少已经意味着
X
次了。最后,您忘记了
0-9
部分。所以看起来这样就可以了:

[a-zA-Z0-9]{2,}
一些正则表达式风格将
[a-zA-Z0-9]
作为预定义的字符类。例如,在Java中它是
\p{Alnum}

如果您还想留出空间(根据您的测试数据),请使用
\s

(?:\s*[a-zA-Z0-9]{2,}\s*)*

对于alpha number

您的示例没有测试数据……这对我的测试数据不起作用,我已经用此更新了原始帖子data@fightstarr20看起来您还需要留出空间。看到编辑了。是的,刚刚发现了,没有空间!这项功能现在运行得更好,但仍然允许数字独立。另外,现在空间被视为character@fightstarr20好了,我开始理解这些要求了。尝试编辑。