代码之家  ›  专栏  ›  技术社区  ›  Peter Lee

如何检查C正则表达式是否尝试匹配1(且仅限1)个字符的字符串?

  •  0
  • Peter Lee  · 技术社区  · 15 年前

    也许这是一个非常罕见(甚至愚蠢)的问题,但我确实需要它在我的应用程序。

    我说清楚了吗?

    谢谢。

    P、 S:我看到了一个关于计算最终匹配字符串长度的答案,但不知为什么,答案不见了。 我想了一会儿,我觉得计算最后匹配的字符串长度是可以的,尽管这会有点慢。

    3 回复  |  直到 15 年前
        1
  •  0
  •   Stefan Steinegger    15 年前

    您可以只对单个字符而不是整个字符串应用它,而不是验证可能很复杂的正则表达式。

    如果这是不可能的,您可能希望将正则表达式的可能性限制为某些特定的特性。例如,用户只能输入要匹配的字符或要排除的字符。然后在代码中构建regex。

    • ABC 比赛 [ABC]
    • ^ABC [^ABC]
    • A-Z 比赛 [A-Z]
    • # 比赛 [0-9]
    • \w \w
    • AB#x-z [AB]|[0-9]|[x-z]|\w
    • 你需要支持哪些案例?

        2
  •  1
  •   skyfoot    15 年前

    一个regexp应该是 .{1} [a-z0-9]{1} 还是速记 /w{1}

    另一个选择是限制用户可以在输入字段中键入的字符数。设置最大长度。

    为什么不使用maxChar和maxlength。

        3
  •  1
  •   Colin Hebert    15 年前

    * , + {} , ? [] 作为一个字符)。