regex 如何正则化负数和破折号?

u91tlkcl  于 2022-11-26  发布在  其他
关注(0)|答案(1)|浏览(134)

我是第一次使用正则表达式,我遇到了一个令人困惑的问题,关于这个场景,我有一个项目的列表,它们的重量和单位。我需要缩写的项目和重量,但我的正则表达式打破了当有一个负数。下面是我目前的正则表达式:

[.0-9]+-\.?[0-9.]*

这是我的例子

Lenovo Legion 5-15 lbs

我可以匹配5-15,这是正确的,但当我有一个值,如

DELL XPS -2 lbs

我的正则表达式坏了。我如何修改正则表达式以适应负值?

a8jjtwal

a8jjtwal1#

您可以使用

-?\d+(?:\.\d+)?(?:-\d+(?:\.\d+)?)?

请参阅regex demo

  • 详细数据 *:
  • -?-可选的-
  • \d+(?:\.\d+)?-一个或多个数字,然后是可选的.和一个或多个数字
  • (?:-\d+(?:\.\d+)?)?-可选的
  • --连字符
  • \d+(?:\.\d+)?-一个或多个数字,然后是可选的.和一个或多个数字

相关问题