【问题标题】:Regular Expression to find negative numbers without decimal point正则表达式查找不带小数点的负数
【发布时间】:2016-04-13 13:59:59
【问题描述】:

我有字符串,例如-15。我只需要找到-XX(其中X 是一个数字),例如-15-19 不带小数点(-19.5 等)。

我试过这个:

\b-\d{2}\b(?!\.\d) 

还有这个:

\b\-\d{2}\b(?!\.\d)

但他们什么都不做。如何制作正则表达式来做到这一点?

【问题讨论】:

  • 删除第一个\b
  • 好吧,当有人没有正确解释他们的答案时会发生这种情况,...
  • 有什么理由需要为此使用正则表达式,而不是仅仅使用 ceil() 等?
  • @Rizier123: 地板是你的 :)
  • @WiktorStribiżew 好吧,我不是来清理别人的垃圾的。

标签: regex pcre


【解决方案1】:

你可以使用这个正则表达式:

-\d{2}(?!\.\d)\b

Live Demo on Regex101

有 2 个原因,您的一个不工作。

首先,您需要删除第一个 \b

其次,您需要将第二个\b 移到负前瞻之后。否则它会查找单词边界,然后尝试查找. 和数字。您希望它找到. 和后面带有单词边界的数字,而不是之前。

【讨论】:

  • 还有一个问题。我有正则表达式 (\b\d{1,2}\.\d{1,2}\b) - "8.50 or 22.20" 但我的正则表达式将该字符串返回给... "10.0/75" 如何我可以避免吗?
  • 没问题!是的,(\b\d{1,2}\.\d{1,2}(?!.\d)) 工作正常。您可以使用Regex101 来测试您的正则表达式
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-01-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多