我需要一个正则表达式来从给定的字符串中提取分数,十进制和整数值。例如,输入将如下所示。
输出应该跟随。
我想出了如何使用3个不同的正则表达式分别提取分数,十进制和整数值,但我无法想出用一个正则表达式提取所有可能的数值的方法。
我目前正在使用Javascript String对象的匹配方法。
任何帮助将不胜感激。
答案 0 :(得分:2)
答案 1 :(得分:1)
那么为什么不展示你的工作正则表达呢?
但这是如何,只需使用替换:
\d+(\/\d+|\.\d+)?
这已经略微优化了。您可以简单地将三个正则表达式分隔|
。
答案 2 :(得分:1)
在这种情况下最简单的正则表达式(假设您的数字始终位于字符串的开头)是:
^\S+
示例:
'1/2 apples'.match(/^\S+/) // ["1/2"]
'1 lemon'.match(/^\S+/) // ["1"]
答案 3 :(得分:1)
如果您确定所有字符串具有相同的格式(即以金额,空格,然后是文本开头),则甚至不需要正则表达式:
"1/2 apples".split(" ").shift(); // gives "1/2"