【问题标题】:Problem with Regex in .NET (C#).NET (C#) 中的正则表达式问题
【发布时间】:2010-05-05 11:52:31
【问题描述】:

我正在尝试编写一个正则表达式来验证字符串是否符合以下规则。

  • 必须以 a-z 开头(不区分大小写)
  • 必须只包含 a-z A-Z 0-9 。 -

根据我有限的知识,我将一些东西放在一起,并通过在线测试工具运行了很多情况,结果正如我所希望的那样,但是当我将模式放入我的 .NET 代码时它没有' t 匹配正确。

我使用的模式是,

[a-zA-Z][a-zA-Z0-9.\-]*

这是正确的模式还是我找错了树?

我所期待的一些例子。

  • craig.bovis - 有效
  • 24craig - 无效
  • craig@bovis - 无效
  • craig24 - 有效
  • -craig24 - 无效
  • craig24.bovis-test - 有效

【问题讨论】:

  • 不要忘记用 ^ 开始你的正则表达式来表示字符串的开始。

标签: c# .net regex


【解决方案1】:

你已经接近了。您需要将匹配锚定到字符串的开头和结尾:

^[a-zA-Z][a-zA-Z0-9.\-]*$

^ 表示“字符串的开头”,$ 表示“字符串的结尾”。没有它们,表达式也将匹配字符串的任何位置。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多