【问题标题】:Check if a string only contains the characters > or < or - [duplicate]检查字符串是否仅包含字符 > 或 < 或 - [重复]
【发布时间】:2018-09-07 08:01:19
【问题描述】:

我需要检查一个字符串是否只包含字符 &gt;&lt;-

所以我想为此使用RegEx,我发现了一个具有完全相同问题的SO问题,并且它有一个答案(不是接受的答案,而是正则表达式的答案)

这是一个 SO 问题:String contains only a given set of characters

所以我修改了这个问题中的表达式以满足我的需求:

static readonly Regex Validator = new Regex(@"^[><- ]+$");

我这样称呼它;

Validator.IsMatch(testValue)

但它会抛出错误

x-y 范围倒序

关于这个错误有很多关于 SO 的问题,但我找不到或理解我需要的答案。

那么我对这个RegEx 做错了什么?

【问题讨论】:

标签: c# regex


【解决方案1】:

^[-&lt;&gt;]+$ "-" 在 C# 正则表达式中必须排在第一位

【讨论】:

  • 谢谢,答案很简单,只是在大多数答案中从未简单解释过
  • - 符号有特殊含义,当我们想乱扔垃圾时应该转义它,例如[0-9] 是一系列字符 0, 1, 2, ..., 9,而 [0\-9] 正好表示 0-9 字符。
【解决方案2】:

在字符组内转义-。 ([0-9] 表示“零到九”而不是“零、破折号或九”)

【讨论】:

  • 如何在正则表达式中转义?
  • 新正则表达式(@"^[>
  • @DiabloSteve 将其作为答案,而不是评论:/
  • 通常是\-,但根据语言,您还需要在字符串对象中转义\ \\-
  • @dognose C#中字符串前面的@表示自动转义。他们被称为verbatim string literals
猜你喜欢
  • 1970-01-01
  • 2019-06-06
  • 2014-11-01
  • 1970-01-01
  • 1970-01-01
  • 2017-08-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多