【问题标题】:Regular expression "^[a-zA-Z]" or "[^a-zA-Z]"正则表达式“^[a-zA-Z]”或“[^a-zA-Z]”
【发布时间】:2010-05-07 18:29:51
【问题描述】:

^[a-zA-Z][^a-zA-Z] 有区别吗?

当我签入 C# 时,

Regex.IsMatch("t", "^[a-zA-Z]")  // Returns true (I think it's correct)

Regex.IsMatch("t", "[^a-zA-Z]")  // Returns false

有很多网站使用[^a-zA-Z] 作为字母表。我不确定哪一个是正确的答案。

【问题讨论】:

  • 非常感谢您的回答。我现在看得清楚了。
  • 很高兴雨停了!
  • 顺便说一句,C# 没有正则表达式。 .NET 框架可以。

标签: c# .net regex


【解决方案1】:

是的,第一个意思是“匹配所有以字母开头的字符串”,第二个意思是“匹配所有包含非字母的字符串”。插入符号 ("^") 有两种不同的使用方式,一种表示文本的开始,另一种用于否定方括号内的字符匹配。

【讨论】:

  • 感谢您的回答。
【解决方案2】:

^[a-zA-Z] 表示行首的任意 a-z 或 A-Z

[^a-zA-Z] 表示任何不是 a-z 或 A-Z 的字符

【讨论】:

  • 既不在 a-z 中也不在 A-Z 中
【解决方案3】:

有区别。

^ 字符出现在[] 之外时,匹配行(或字符串)的开头。当^ 字符出现在[] 中时,它匹配任何没有出现在[] 中的字符。

【讨论】:

    【解决方案4】:

    ^ 在字符类(“[a-zA-Z]”)之外指出它是“开始于”运算符。
    字符内部的 ^ 否定指定的类。

    因此,“^[a-zA-Z]”翻译为“以 az 或 AZ 的字符开头”,而“[^a-zA-Z]”翻译为“既不是 az 也不是 AZ”

    这里有一个快速参考:http://www.regular-expressions.info/reference.html

    【讨论】:

      猜你喜欢
      • 2010-12-11
      • 1970-01-01
      • 2011-06-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-01-07
      • 2018-08-27
      • 2013-08-19
      相关资源
      最近更新 更多