Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/300.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 非字母和非数字的正则表达式_C#_Regex - Fatal编程技术网

C# 非字母和非数字的正则表达式

C# 非字母和非数字的正则表达式,c#,regex,C#,Regex,请提供在C#.NET中编写正则表达式的解决方案,如下所示: 对于非字母(a到z;a到z)和非数字(0到9),我需要一个正则表达式。 表示以相反的方式获取除字母和数字以外的正则表达式(0到9) 请建议相同的解决方案。您可以在此处使用: 上面的正则表达式将匹配单个字符,该字符不能是拉丁字母、小写字母、大写字母或数字 字符类开头的^(介于[和]之间的部分)否定整个类,使其匹配类中不存在的任何内容,而不是正常的字符类行为 要使其有用,您可能需要以下选项之一: 零个或多个此类字符 [^a-zA-Z0-9]

请提供在C#.NET中编写正则表达式的解决方案,如下所示: 对于非字母(a到z;a到z)和非数字(0到9),我需要一个正则表达式。 表示以相反的方式获取除字母和数字以外的正则表达式(0到9)

请建议相同的解决方案。

您可以在此处使用:

上面的正则表达式将匹配单个字符,该字符不能是拉丁字母、小写字母、大写字母或数字

字符类开头的
^
(介于
[
]
之间的部分)否定整个类,使其匹配类中不存在的任何内容,而不是正常的字符类行为

要使其有用,您可能需要以下选项之一:

  • 零个或多个此类字符

    [^a-zA-Z0-9]*
    
    [^a-zA-Z0-9]+
    
    ^[^a-zA-Z0-9]*$
    
    ^[^a-zA-Z0-9]+$
    
    此处的星号(
    *
    )表示前面的部分可以重复零次或多次

  • 一个或多个这样的字符

    [^a-zA-Z0-9]*
    
    [^a-zA-Z0-9]+
    
    ^[^a-zA-Z0-9]*$
    
    ^[^a-zA-Z0-9]+$
    
    加号(
    +
    )表示前面的部分可以重复一次或多次

  • 一个完整的(可能是空的)字符串,仅由这样的字符组成

    [^a-zA-Z0-9]*
    
    [^a-zA-Z0-9]+
    
    ^[^a-zA-Z0-9]*$
    
    ^[^a-zA-Z0-9]+$
    
    在这里,字符
    ^
    $
    的含义为,分别匹配字符串的开头和结尾。这样可以确保整个字符串由不在该字符类中的字符组成,并且在它们之前或之后没有其他字符

  • 一个完整的(非空)字符串,仅由这些字符组成

    [^a-zA-Z0-9]*
    
    [^a-zA-Z0-9]+
    
    ^[^a-zA-Z0-9]*$
    
    ^[^a-zA-Z0-9]+$
    
  • 详细说明一下,这不会(也不能)确保您不会使用任何其他字符,可能来自其他脚本。字符串
    ааΒ
    对于上述正则表达式完全有效,因为它使用来自希腊语和西里尔语的字母。此外,还有其他陷阱。字符串
    á
    将在正则表达式上方传递,而字符串
    ́a
    将不会传递(因为它从字母a和组合变音符号构造字母á)

    因此,否定字符类有时必须小心处理

    如果我想,我也可以使用其他脚本中的数字:
    ٢٣
    :-)

    您可以使用character类

    [^\p{L&}\p{Nd}]
    
    如果您需要处理上述事项。

    只需取消课程:


    [^A-Za-z0-9]

    要遵守本地设置,请使用:

    [^[:alnum:]]
    

    非常感谢。非常感谢。非常感谢。谢谢。:)哎呀。。。手指记忆:-(修复:-)不幸的是,对于.NET来说,这是一个糟糕的问题,因为它们不支持POSIX括号表达式。根据表达式
    [\p{L&}\p{Nd}]
    可能替代Unicode感知的重口味。