【问题标题】:Regular Expression for alphanumeric and space字母数字和空格的正则表达式
【发布时间】:2009-05-29 03:41:04
【问题描述】:

除了空格之外不能包含任何特殊字符的文本的正则表达式是什么?

【问题讨论】:

  • 您是否只寻找字母数字 + 空格作为您的字符集?
  • 您必须更明确地列出您认为的特殊字符。
  • 是的,乔希。它只有字母数字 + 空格。
  • 我没有用过 C#,但在我用过的所有其他正则表达式引擎中,\s 也包括制表符。

标签: c# .net regex


【解决方案1】:

因为Prajeesh 只想匹配空格,所以 \s 是不够的,因为它匹配所有空白字符,包括换行符和制表符。

应该普遍适用于所有 RegEx 解析器的字符集是:

[a-zA-Z0-9 ]

进一步控制取决于您的需要。单词边界、多行支持等...我建议您访问Regex Library,它还提供了一些关于正则表达式解析工作原理的各种教程的链接。

【讨论】:

    【解决方案2】:

    [\w\s]*

    \w 将匹配 [A-Za-z0-9_]\s 将匹配空格。

    [\w ]* 应该匹配你想要的。

    【讨论】:

    • \s 匹配 Prajeesh 特别想要排除的所有空白字符。
    【解决方案3】:

    假设“特殊字符”是指任何不是字母或数字的东西,而“空格”是指空格字符(ASCII 32):

    ^[A-Za-z0-9 ]+$

    【讨论】:

      【解决方案4】:

      您需要@"^[A-Za-z0-9 ]+$"\s 字符类匹配空格以外的内容(例如制表符),并且您因为要匹配确保字​​符串的任何部分都没有其他字符,所以您应该使用^$ 锚定它。

      【讨论】:

      • 你能告诉我正则表达式中锚点的用途吗?
      • 不同的正则表达式解析器使用不同的锚点,但基本上 ^ 将匹配锚定到字符串的开头,而 $ 锚定到字符串的末尾。因此,在字符串 'aaaaa' 上使用 [a] 会产生五个匹配项,而 ^[a] 只会产生一个。
      【解决方案5】:

      如果您只想要字母和空格,那么您可以使用:@"[A-Za-z\s]+" 来匹配至少一个字符或空格。您也可以使用 @"[A-Za-z ]+" 代替,而无需明确表示空格。

      否则请澄清。

      【讨论】:

        【解决方案6】:

        在 C# 中,我相信它是 ^(\w|\s)*$

        【讨论】:

        • 一个字符类会更好:^[\w\s]*$,但这取决于你是否将制表符之类的东西算作空格。
        猜你喜欢
        • 2012-09-12
        • 2010-09-15
        • 2022-01-14
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多