【问题标题】:C# Regex for three digit and an alpha三位数字和一个字母的 C# 正则表达式
【发布时间】:2014-10-11 22:44:35
【问题描述】:

我有一个字段,我需要一个正则表达式,其中前 3 位数字是数字,第四个字符只能是字母,我需要在 c# 和 javascript 中都有正则表达式。

我的以下正则表达式适用于三个数字

@"\A(\d){3}\Z";

如何添加必须为 alpha 的第四个字符

【问题讨论】:

  • 你可以写这个@"\A(\d){3}\Z";正则表达式,不能添加alpha- letter
  • 第四个字符必须是字母A-Z

标签: javascript c# regex


【解决方案1】:

如果 alpha 仅表示拉丁字母,您可以这样做:

^\d{3}[a-zA-Z]$

您不能在 JavaScript 中使用 \A\Z,但它们等效于 ^$,除非您使用 m 选项。

如果您需要完整的 Unicode 字符范围,请使用 \p{L} 而不是 [a-zA-Z],但您对 JavaScript 支持不走运。您必须手动将相关的 Unicode 范围包含到字符类中...

【讨论】:

    【解决方案2】:

    我想你想知道的是Character Classes or Character Sets

    使用“字符类”,也称为“字符集”,您可以告诉正则表达式引擎只匹配几个字符中的一个。只需将要匹配的字符放在方括号之间。 [...]

    [...] 您可以在字符类中使用连字符来指定字符范围。 [0-9] 匹配 0 到 9 之间的单个数字。您可以使用多个范围。 [0-9a-fA-F] 匹配单个十六进制数字,不区分大小写。您可以组合范围和单个字符。 [0-9a-fxA-FX] 匹配十六进制数字或字母 X。同样,字符的顺序和范围无关紧要。 [...]

    所以基本上你可以将字符“A”匹配到“Z”,方法是将它们放在方括号中并使用连字符表示范围

    [A-Z]
    

    您可以匹配多个集合,因此如果您还需要“a”到“z”(小写),您可以包含

    [A-Za-z]
    

    【讨论】:

    • “ÖÜŞ”等其他字母呢?根据文化,它们介于 A 和 Z 之间。
    猜你喜欢
    • 2020-03-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-24
    • 1970-01-01
    相关资源
    最近更新 更多