【问题标题】:Limiting to a Specific Set of Characters in Regex Not Working限制正则​​表达式中的特定字符集不起作用
【发布时间】:2012-09-10 19:31:16
【问题描述】:

我需要使用正则表达式验证一个字符串以只允许一组特定的字符。不幸的是,我只使用正则表达式来验证这些字符串。

无论如何我需要限制一个字符串只允许以下字符: a-z 和 A-Z 和 0-9 和空格和 .,;:!=+-_

为此,我创建了以下表达式:

[a-zA-Z0-9.,;:!=+-_\s]*

我不明白为什么这个表达式不起作用。当我使用它时,以下测试字符串给了我以下结果:

<test> Valid 
$<test> Invalid 
test Valid 
<test>asdf</test> Invalid

当我真正需要将验证限制在有效字符的特定列表中时,似乎正在考虑这些特殊字符的顺序,而不管字符串中的顺序如何。

谁能解释一下为什么这可能允许特殊字符,例如“”,但只能按特定顺序?

【问题讨论】:

  • 如果您提到的测试没有得到预期的结果,那该怎么办?

标签: regex string validation


【解决方案1】:

使用锚和盾符号-

^[a-zA-Z0-9.,;:!=+\-_\s]*$

【讨论】:

  • 进一步测试,无法确定任何错误验证。谢谢!
猜你喜欢
  • 2021-10-27
  • 2016-05-16
  • 2018-07-14
  • 1970-01-01
  • 1970-01-01
  • 2017-01-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多