我想写一个机器人,我遇到了一个问题,我不能决定如何解决。
例如,我有一个字符串:
“今天我会买一套4214美元的包子,明天再吃。”
如何查看字符串中是否有“usd”,以及它是否是int/float?如果是,我如何得到它附近的号码?
数字的形式可能会有所不同,但一般可识别的形式应如下:
- 1000
- -1000
- 1000.0
- -1000.0
- 1000,0
- -1000
- 0
任何进一步的分割都不应该被识别。
对于上面的字符串,预期的结果将是:
"4214 usd"
正则表达式在这里会很有用,但我是新来的,对它们一点也不熟悉。
3条答案
按热度按时间bis0qfac1#
Regex是一个可以接受的工具,如果你能忍受偶尔的误报和漏报(错过的美元金额或错误地标记为美元的东西)。试试这个代码。由于要匹配一个字符串中的多个格式,因此很难一次获得所有匹配项。
请参阅下面评论中的解释,regex是做什么的。
结果会给予你一个字符串数组,这样你就可以处理它了。例如,迭代它,然后删除
usd
并将它们转换为JS数字,这样您就可以对它们求和或其他任何东西。xkrw2x1b2#
.split
3pmvbmvn3#
你可以用那个代码块