gpt4 book ai didi

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

转载 作者:太空狗 更新时间:2023-10-29 20:46:24 35 4
gpt4 key购买 nike

请提供一种在 C#.NET 中编写如下正则表达式的解决方案:我需要一个用于非字母(a 到 z;A 到 Z)和非数字(0 到 9)的正则表达式。意思是说作为获取除字母和数字(0 到 9)以外的正则表达式的反向方法。

请提出相同的解决方案。

最佳答案

您可以使用 negated character class这里:

[^a-zA-Z0-9]

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

字符类开头的 ^([] 之间的部分)否定完成类,以便它匹配类中的任何内容,而不是正常的字符类行为。

为了使其有用,您可能需要其中之一:

  1. 零个或多个这样的字符

    [^a-zA-Z0-9]*

    这里的星号(*)表示前面的部分可以重复零次或多次。

  2. 一个或多个这样的字符

    [^a-zA-Z0-9]+

    这里的加号(+)表示前面的部分可以重复一次或多次。

  3. 一个完整的(可能是空的)字符串,只包含这样的字符

    ^[^a-zA-Z0-9]*$

    这里字符 ^$ 的含义为 anchors , 分别匹配字符串的开头和结尾。这确保整个字符串由不属于该字符类的字符组成,并且在它们之前或之后没有其他字符。

  4. 一个完整的(非空的)字符串,只包含这样的字符

    ^[^a-zA-Z0-9]+$

详细说明一下,这不会(也不能)确保您不会使用任何其他字符,可能来自其他脚本。字符串 аеB 对上述正则表达式完全有效,因为它使用了希腊语和西里尔语字母。此外还有其他陷阱。字符串 á 将通过正则表达式,而字符串 ́a 不会(因为它从字母 a 和组合变音符构造字母 á)。

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

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

你可以使用字符类

[^\p{L&}\p{Nd}]

如果您需要处理上述事情。

关于c# - 非字母和非数字的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1754758/

35 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com