正则表达式匹配数字,逗号和特定单词

时间:2018-02-05 00:11:52

标签: c# regex

我尝试设置符合以下条件的正则表达式:

hot 8,6,4,2,1,7

这是我到目前为止所使用的代码,但这些代码都不够具体:

^(hot)|(cold)|( )([8])
^(hot)|(cold)|([1-8])|(,\d{1})

以下是强制检查格式所需的要求:

  1. 正则表达式应匹配小写单词," hot"或"冷"
  2. 数字不能超出范围[1-8]
  3. 如果字符串包含单词hotcold,则必须有空格和空格后面的8;例如,hot 8cold 8
  4. 字符串中的最后一个字符应以数字(无空格或字符)结尾
  5. 对此的一些帮助将非常感激。提前谢谢!

2 个答案:

答案 0 :(得分:0)

((热8,)|(冷8,))?(/ d,)+ / d

所以我可能错过了正确输入正则表达式符号,但我在电话上没有快速参考,但我知道规则存在,如果这有帮助。但解释基本上是..

“热空间数”或“冷空间数”(零或1次)然后和数字后面跟一个逗号(1次或更多次),然后是最后一个没有结束逗号的数字。

抱歉我的答案格式化...移动设备。

答案 1 :(得分:0)

您可以使用

Regex.IsMatch(s, @"^(?:hot|cold) 8(?:,[1-8])*$")

请参阅regex demo

<强>解释

  • ^ - 字符串开头
  • (?:hot|cold) - hotcold子字符串
    • 8 - 空格和8
  • (?:,[1-8])* - 零次或多次(*)次出现:
    • , - 逗号
    • [1-8] - 从18的数字(根据您的需要调整)
  • $ - 字符串结束。