【问题标题】:Exclude no comma case in regex正则表达式中不排除逗号大小写
【发布时间】:2019-01-13 09:35:02
【问题描述】:

我创建了这个 RE:^[ ]{0,1}[^\s] 来匹配:

1 min
1 min, 2 min, 3 min

但我不知道如何排除这种特殊情况:1 min 2 min 3 min

或者我希望字符串只用逗号分隔?

【问题讨论】:

  • 那么对于最后一种情况,您想匹配“1min”“2 min”和“3 min”吗?
  • 我喜欢匹配它并且逗号也分开。

标签: python regex regex-lookarounds


【解决方案1】:

怎么样:

^\d+ min(?:, \d+ min)*$

说明:

^               : beginning of string
\d+ min         : 1 or more digits, a space then min
(?:             : start non capture group
  , \d+ min     : a comma, a space, 1 or more digits, a space then min
)*              : end group, may appear 0 or more times
$               : end of string

【讨论】:

  • 它仍然匹配“1 min 2 min”
  • 逗号后面应该有一个空格。像这样:“1 分钟、2 分钟、3 分钟”
  • 我也在使用 Python 表示法。
  • @ot123:我的正则表达式中的逗号后面有一个空格。它适用于 Python。添加原始符号:r'^\d+ min(?:, \d+ min)*$'
【解决方案2】:

希望这对你有用:

r'(((,)?\s?\d+\s+min)+)'

【讨论】:

  • 这与1 min不匹配
  • 现在匹配 ,1 min1 min2 min 3 min
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-11-27
  • 2011-02-01
  • 2011-04-22
  • 1970-01-01
相关资源
最近更新 更多